Значения многих свойств можно задавать как в режиме выполнения, так и в режиме конструирования. Некоторые свойства устанавливаются только в режиме конструирования (например, BorderStyle), а некоторые свойства можно задавать и читать только в режиме выполнения. Свойства, доступные только в режиме выполнения (например, hWnd), не отображаются в окне свойств в режиме конструирования.
ПРИМЕЧАНИЕ В режиме конструирования значения свойств изменяются в окне свойств, а в режиме выполнения задаются из программы.
Свойство Caption — одно из тех свойств, которые легко изменить в режиме выполнения. Приведу небольшой пример: строка «Привет» в заголовке формы здесь заменяется строкой «Пока». Впоследствии мы расширим эту программу и научимся задавать названия для отдельных объектов на форме.
1. Создайте новый проект (File > New Project) и измените значение Form1 свойства Name в окне свойств на frmForm1. Кроме того, установите значение свойства
Caption в Привет.
2. Дважды щелкните на элементе-кнопке в панели элементов, чтобы разместить на форме кнопку. Задайте для свойства Name значение cmdHello, а для свойства Caption — значение &Не11о.
|
|
3. Дважды щелкните на кнопке, чтобы открыть окно программы с процедурой cmdHello_Click. Добавьте в процедуру следующий фрагмент (также см. рис. 2.2):
If frmForm1.Caption = "Привет" Then
frmForm1.Caption = "Пока"
Else
frmForm1.Caption = "Привет"
End If
ПРИМЕЧАНИЕ Операторы If-Then-Else позволяют принимать решения в программах. Если условие If истинно, то выполняется действие Then, иначе выполняется Else. Логика и последовательность выполнения программы подробно рассматривается в уроке 6.
Puc. 2.2. Добавление нового фрагмента в процедуру
4. Запустите приложение (Run > Start) и нажмите кнопку.
Приведенный выше фрагмент проверяет текущее значение свойства Caption формы. Как видно из рис. 2.3, если на момент нажатия кнопки оно равно "Привет", то оно заменяется на "Пока". В противном случае (то есть в условии Else) ему снова присваивается строка "Привет".
Рис. 2.3. Изменение свойства Caption
Новый вариант программы
В следующем примере мы сделаем шаг вперед. Двойным щелчком на кнопке откройте окно программы с процедурой Click. Отредактируйте процедуру так, чтобы она приняла следующий вид:
If frmForm1.Caption = "Привет" Then
frmForm1.Caption = "Пока"
cmdHello.Caption = "&Привет"
Else
frmForm1.Caption = "Привет"
cmdHello.Caption = "&Пока"
End If
ПРИМЕЧАНИЕ При задании строковых свойств в программе не забывайте за-ключать их в кавычки. Тем самым вы сообщаете компилятору, что указываете фактическое значение, а не ссылаетесь на имя другой переменной. Если значение строкового свойства задается в окне свойств, кавычки не нужны.
|
|
Исправление ошибки
Как видно из рис. 2.4, наша процедура теперь содержит две дополнительные строки, которые задают значение свойства Caption для кнопки в режиме выполнения:
cmdHello.Caption = "&Привет"
cmdHello.Caption = "&Пока"
Если вы работаете в Windows 95, проследите за изменением текста кнопки на панели задач в соответствии с текущим названием формы. Кроме того, похоже, в нашем приложении допущена ошибка — при запуске на кнопке появляется текст «Привет», хотя вместо него должно быть написано «Пока». Разумеется, проблему можно решить, просто изменяя свойство Caption в режиме конструирования, но мы пойдем другим путем.
Эта маленькая ошибка исправляется следующим образом:
1. Дважды щелкните на форме в конструкторе, чтобы загрузить окно программы с процедурой Form_Load.
2. Добавьте в процедуру следующий оператор (между строками Private Sub и End Sub), как показано на рис. 2.5:
cmdHello.Caption = "&Пока"
Рис. 2.4. Работа со свойством Caption
Рис. 2.5. Изменение процедуры Load
3. Запустите приложение (Run > Start) — на этот раз все работает правильно.
Что же произошло? Мы воспользовались одним из событий, связанных с формой, и изменили свойство элемента в режиме выполнения программы. Давайте рассмотрим некоторые из этих событий. Не обращайте внимания на префикс Private процедуры Form_Load — его смысл станет понятен из урока 4.
События форм
Прежде чем рассматривать события, связанные с формами, необходимо выяснить, что же такое событие. Программы в операционной системе Windows управляются событиями. Другими словами, системные события используются для обработки внешних условий. События возникают в результате получения сообщений. Каждый раз, когда вы нажимаете кнопку, перемещаете мышь, изменяете размеры формы и т. д., Windows генерирует сообщение, описывающее ваши действия, и помещает его в очередь сообщений программы. Из очереди сообщение доставляется соответствующему объекту, например форме, а та генерирует соответствующее событие. Вы можете написать свой собственный фрагмент программы, в котором объект будет реагировать на событие именно так, как вам нужно. В этом и последующих уроках мы поближе познакомимся с событиями. Чем больше вы программируете, тем больше узнаете о событиях. Ниже приведен перечень событий, связанных с формами.
Activate | KeyDown | LostFocus | OLESetData |
Click | KeyPress | MouseDown | OLEStartDrag |
DblClick | KeyUp | MouseMove | Paint |
Deactivate | LinkClose | Mousellp | QueryUnload |
DragDrop | LinkError | OLECompleteDrag | Resize |
DragOver | LinkExecute | OLEDragDrop | Terminate |
GotFocus | LinkOpen | OLEDragOver | Unload |
Initialize | Load | OLEGiveFeedback |
Лишь немногие события (как, впрочем, и свойства) используются достаточно часто. В таблице они выделены жирным шрифтом. С большинством событий приходится сталкиваться лишь при разработке очень сложных приложений. Чтобы просмотреть события, связанные с формой, в режиме конструирования, дважды щелкните на ней — откроется окно программы. Текущая форма автоматически выбирается в списке Object, поэтому вам остается лишь раскрыть связанный с ней список Ргос (рис. 2.6):
Рис. 2.6. Список событий, связанных с формой