Створення контекстних меню, Basic, Програмування, статті

Іноді бувають дуже потрібні контекстні меню, тобто меню, которе “Вивалюються” при правом кліці мишею. Благо, Бейсік дозволяє їх створювати. Приклад Цього я сам не придумав, і взагалі це не приклад, а інструкція до створення тематичних меню. Т.к. для новачків цей процес може виглядати важкувато, я спробую його роз’яснити.

1. Спочатку створюємо просту форму.
2. Тепер потрібно клікнути на кнопочки Menu Editor вгорі зліва. Там меню намальовано.
3. Клацніть на ньому.
4. Тепер нам потрібно створити меню, яке і буде контекстним. Отже, в полі Caption вписуємо якесь ім’я, неважливо яке, воно чисто для вас, тому що відображатися цей напис ніде не буде. Введемо, наприклад, myPopup. У поле Name вводимо наприклад mnuPopup і прибираємо галочку з Visible – робимо меню невидимим.

Так, тепер треба ввести потрібні пункти меню! Клацніть на кнопці Next, а потім на стрілці вправо. З’являться чотири точки. Це означає, що наступний пункт знаходиться в подуровне меню Popup, так би мовити стає його складових компонентом. У порожнє поле Caption введіть Show Message (показати повідомлення) і в поле Name введіть mnuSM. Клацніть ще раз на Next, але стрілку більше тиснути не треба – підрівень стоїть тепер по замовчуванням. У Caption введіть Input your name, в Name вписуємо mnuIYN, потім знову на Next. Тепер зробимо маленький візуальний ефект – введемо роздільник між командами меню і командою виходу. Для прикладу запустите будь-яку програму під Windows клацніть на меню File і подивіться вниз, комманда Exit завжди відокремлена сепаратором від всіх інших! Так зробимо такий же роздільник. В поле Caption вводимо “-“, тільки без лапок (мінус). У поле Name уведіть, що хочете це не потрібно Вам взагалі, наприклад Sep. Тепер знову Next, і в полі Caption введіть Exit, а в поле Name введіть mnuExit. Все, ваше меню готово! Залишилося тепер тільки “Нафарширувати” його кодом і прекрепіть як контекстне. Тисніть кнопку ОК!
5. Зробіть двой але клацання на формі і відкрийте вікно Code. У віконці, де варто Load (подія форми стоять за замовчуванням) і виберітесобитіе MouseUp. Тобто подія відбувається при відпусканні кнопки миші. Чому так поясню трохи пізніше. Передані значення для підпрограми MouseUp це Button, Shift, X, Y. .. але нам потрібен Button. Цей аргумент повертає значення, показує какaя кнопка була натиснута. Значення 1 це ліва кнопка, 2 – це права. Так само є бейсіковскіе константи vbLeftButton і vbRightButton, їх значення безпосередньо 1 і 2. Тому в подія MouseUp вписуємо:

Private
Sub
Form_MouseUp(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
‘Перевіряємо: якщо натиснута була права кнопка, то чіпляємо до форми _
myPopup-меню, як PopUp
If Button = vbRightButton Then
    Me.PopupMenu
mnuPopup, , X, Y, mnuExit
End If

End
Sub

Тепер поясню рядок

    Me.PopupMenu
mnuPopup, , X, Y, mnuExit

окремо. По-перше, ось синтаксис:

object.PopupMenu
menuname, flags, x, y, boldcommand

object     об’єкт, до якого чіпляємо меню.

menuname   ім’я меню, яке хоти причепити

flags      константа, описує місце поява меню

x         
розташування меню по Іксу

y         
розташування меню по ігріку

boldcommand  пункт меню, який повинен бути виділено жирним (тільки один пункт!)

По-друге, от константи для flags:
 
 

Константи Значення Опис
vbPopupMenuLeftAlign  0 (За замовчуванням) меню з’являється зліва під курсором.
vbPopupMenuCenterAlign  4 меню з’являється по центру під курсором.
vbPopupMenuRightAlign  8 меню з’являється справа під курсором.

Тобто Ви можете підставляти як константи так і значення. А якщо Ви пропустіть, то меню з’явиться там, де воно коштує по замовчуванням.
6. Тепер виберемо подію MouseDown і впишемо:

Private
Sub
Form_MouseDown(Button As Integer, Shift As _
Integer, X As Single, Y As Single)
    ‘При кожному натисканні контестное меню спрятивается
   
Me.mnuPopup.Visible = False
End Sub

Тепер поясню чому так. Розумієте, цим я зімітував точне поява контексной меню як в Windows Explorer. Зверніть увагу – меню з’являється тільки при отжатии правої клавіші, а при повтороном натисканні зникає і з’являється на новому місці.

Тепер там, де стоїть форм, виберемо mnuExit – з’явиться подія на клік по пункту меню “Exit”. Впишемо всередину тільки три бкуви:

Private
Sub
mnuExit_Click()
End ‘закриття програми
End Sub

Тепер кликнемо там же і виберемо подія mnuIYN, потім введемо:

Private
Sub mnuIYN_Click()
   
YourName = InputBox("Input yout name, please!") ‘Запит імені
End Sub

Далі виберемо mnuSM і впишемо:

Private
Sub mnuSM_Click()
   
MsgBox "Hello, world!"
End Sub

Все, тепер залишилося запустити проект і перевірити працездатність контекстного меню!

Приємного користування!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*