Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 5:

Макросы. Дальнейшая информация об объектах

Объект меню

Объект меню имеет около 15 свойств; действия, выполняемые при выборе команды меню должны быть запрограммированы в процедуре меню события Click; объект не имеет методов. Свойства доступны в режиме конструирования, но только при использовании редактора меню (см. ниже). Элементы первого уровня меню могут содержать список меню второго уровня и т.д.

Имеется редактор меню для создания меню, для работы с всплывающими меню. Редактор можно стартовать щелчком на соответствующей кнопке панели инструментов Стандартная, с помощью команды Инструменты \to Редактор меню или с использованием комбинации клавиш CTRL + E, рис. 5.6. Объект меню может быть выведен на форму в том случае, если она маркирована. При создании меню должны быть определены свойства меню Name - имя меню в коде программы и Caption - надпись, рис. 5.6. Свойство Index (см. рис. 5.6) используется при создании массива меню. Если в рассматриваемой ситуации некоторая команда меню не имеет смысла, то свойству Enabled нужно присвоить значение False. Если свойству Visible присвоить значение False, то пункт меню становится невидимым.

Структура создаваемого меню отображается при его формировании в нижней части окна редактора меню, рис. 5.6; кнопки с вертикальными стрелками позволяют переместить выбранный пункт меню на одну позицию вверх/вниз, при этом остаeтся неизменным уровень вложенности, кнопка со стрелкой вправо перемещает пункт на один уровень вложенности вниз, кнопка со стрелкой влево перемещает пункт на один уровень вложенности вверх. Команда Next включает в меню ещeодин пункт, команда Insert вставляет новый пункт меню перед текущим, команда Delete удаляет текущий элемент меню. Символ & в названии пункта меню обеспечивает подчeркивание первой буквы названия команды меню (возможность использования горячей клавиши для вызова команды).

Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
If button = 2 Then
frmStudium.PopupMenu mnuBeruf
End If
End Sub
Редактор меню

Рис. 5.6. Редактор меню

Практическая работа 37. Меню

Создать меню, команда которого позволяет вывести системную информацию Мicrosoft; ниже дана последовательность действий:

  • маркировать форму, стартовать редактор меню,
  • cоздать меню, задав: Name = mnuSysInfMicrosoft (Caption = SystInfMicrosoft) и Name = mnuEnd,
  • добавить в проект форму About Dialog, для этого использовать меню Проект \to Добавить форму \to About Dialog \to Открыть,
  • ввести код, данный ниже:
    Private Sub mnuSysInfMicrosoft_Click()
    frmAbout.Show vbModal
    End Sub
    
    Private Sub mnuEnd_Click()
    End
    End Sub
  • после старта проекта выбрать команду меню SysInfMicrosoft, сделать щелчок на этой кнопке, выводится диалоговое окно About, после щелчка на нижней кнопке выведенного диалогового окна выводится системная информация Microsoft.

Клавиатура и мышь - генераторы событий для других объектов

Клавиатура и мышь обеспечивают взаимодействие пользователя с операционной системой и приложением. Клавиатура - средство ввода данных. Мышь позволяет пользователю управлять средой разработки.

Мышь

Основные события, связанные с мышью даны, в табл. 5.5

Таблица 5.5. События, связанные с мышью
Событие Пояснения
Click Щелчок клавишей мыши. Может наступать также и при изменении значений свойств объекта; для поля списка Click наступает при выборе элемента списка
DblClick Двойной щелчок
MouseDown Нажатие клавиши мыши
MouseUp Отпускание клавиши мыши; параметры те же, что и в случае события MouseDown
MouseMove Передвижение курсора мыши над некоторым объектом, параметры те же, что и в случае события MouseDown
DragDrop Сбрасывание перетаскиваемого мышью объекта; используется параметр source - объект. Синтаксис: Private Sub Command1_ DragDrop (source As Control, x As Single, y As Single)
DragOver Протаскивание объекта мышью над элементом; используется параметр source - объект, синтаксис:
Private Sub Command1_dragover(source As Control, x As Single, y As Single, 
 state As Integer)
state=0 - объект входит в границы источника, state=1 - объект покидает источник, 
state=2 - объект перетаскивается внутри границ источника

Практическая работа 38. Мышь

38а. Мышь; некоторые события
  1. Cоздать на форме: текстовое поле (Name = txt1), 2 поля метки (Name = lbl1 и lbl2 соответственно), рис. 5.7, ввести код, данный ниже,
  2. стартовать проект, протаскивать первую метку над формой и текстовым полем, наблюдать появляющуюся при этом запись в текстовом поле, например: "Label above the TextBox" и т.д. Наблюдать, как при перемещении курсора мыши изменяются его координаты, выводимые в поле второй метки, рис. 5.7

Должно быть установлено значение свойства одной из меток DragMode = 1, что обеспечивает возможность еe перемещения после старта проекта (альтернативное значение - 0). Свойство Tag, см. код, используется в данном случае для вывода названия объекта. В двух процедурах обработки события DragOver (см. код Form_DragOver(:) и txt1_DragOver(:) используется параметр source - объект).

Мышь, некоторые события

Рис. 5.7. Мышь, некоторые события
Private Sub Form_Load()
lbl1.Tag = "Label1"
End Sub

Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)
txt1.Text = source.Tag & "above the Form"
End Sub

Private Sub txt1_DragОver(source As Control, x As Single, y As Single, state As Integer)
txt1.Text = source.Tag & "above the TextBox"
End Sub

Private Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
lbl2.Caption = Str(x) & ";" & Str(y)
End Sub
Константин Новков
Константин Новков
Как подключить библиотеку DLL ?
антонина квасова
антонина квасова
Что реализует инструкция Open - Open "a:\t.txt" For Output As #1
Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва