Уроки Delphi
1. Первая программа
2. Использование компонентов
3. События Delphi
4. Типы данных Delphi
5. Создание своих типов данных
6. Выражения и операторы
7. Работа с файлами в Delphi
8. Дополнительные формы
9. Подпрограммы в Delphi
10. Исключительные ситуации
11. Взаимодействие приложения с пользователем
12. Указатели в Delphi
13. Обзор компонентов
14. Работа со строками
15. Создание интерфейса
16. Графика в Delphi
17. Многопоточность в Delphi
18. Динамическое создание компонентов
Поиск по сайту
Это важно:
Метод Application.ProcessMessages;
Это полезно:
Параметр Sender в обработчиках событий;
Бояться не надо
|
|
Операционная система Windows - многозадачная, т.е. несколько программ в ней могут функционировать одновременно. Когда,
например, мы щёлкаем по кнопке в окне нашей программы, система Windows определяет, что произошло событие именно в нашей программе, и
посылает ей сообщение об этом. Наша программа должна соответствующим образом отреагировать на него. Для этого мы, как программисты, должны
написать код-обработчик этого события. Таким образом, структура программы для Windows представляет собой набор подпрограмм, каждая из
которых ответственна за обработку конкретного события и вызывается только при его возникновении. Удобство Delphi состоит в том, что мы
избавлены от необходимости получать сообщения от Windows сами, Delphi это делает за нас. Каждый компонент имеет впечатляющий набор
событий, на которые он может реагировать. Программист сам определяет, какие события в программе требуется обрабатывать.
|
Откройте наш проект из предыдущего урока. Щелкните на компоненте Edit1. Он "появится" в Инспекторе объектов.
Посмотрите: в Инспекторе объектов две вкладки: Properties (свойства) и Events
(события). Перейдите на вкладку Events. Чтобы создать обработчик нужного события, нужно дважды кликнуть по нему мышкой. А если раскрыть
выпадающий список, в нём будут находиться уже готовые обработчики, которые могут подходить для этого компонента. Таким образом, один обработчик
может вызываться для обработки событий нескольких компонентов.
|
Изменим нашу программу так, чтобы текст на форме появлялся прямо в момент его ввода. В момент ввода у Edit1 меняется
свойство Text - в нём появляется новая буква! Значит, воспользуемся событием onChange (change - изменение (англ.)), которое и
происходит в этот момент. Итак:
-
Кликаем дважды по onChange, и оказываемся внутри только что созданного обработчика.
-
Присваиваем свойству Caption компонента Label1 значение свойства Text компонента Edit1, то есть делаем то же,
что и в прошлом уроке:
Label1.Caption := Edit1.Text;
Или просто копируем из обработчика нажатия кнопки.
-
Запускаем программу, всё работает. Как видим, всё очень просто.
|
Теперь рассмотрим событие onClick. Как вы догадываетесь, это событие возникает при щелчке мышкой на компоненте.
Воспользуемся им, чтобы очищать строку ввода от уже введённых символов. Вы сами уже должны сообразить, что сделать. В обработчике нужно присвоить
свойству Text значение пустой строки. Строка в Delphi образуется заключением текста в одинарные кавычки (находятся на кнопке
Э): 'Так в Delphi образуется строка'
Значит, пустая строка - это кавычки без текста: ''. Не должно быть даже пробела, иначе он окажется в строке ввода:
Edit1.Text:='';
Есть другой способ, воспользоваться специально предназначенным для этого методом компонента Edit, который так
и называется Clear (очистка англ.):
Edit1.Clear;
Но подумайте о пользователе, который будет работать с вашей программой. Ему должно быть удобно. Если при вводе текста
он захочет что-то исправить, и щёлкнет мышкой в том месте текста, где нужно внести изменение?! И всё сотрётся! Поэтому лучше использовать
событие onEnter, которое происходит, когда вы "входите" в него и компонент получает фокус ввода, или использовать для очистки
специальную кнопку и её событие onClick.
Конечно, у каждого компонента свой набор событий. Мы познакомились с тремя из них:
Другие важные события, которые есть почти у каждого визуального компонента:
- onExit - возникает, когда компонент теряет фокус ввода;
- onDblClick - возникает при двойном щелчке мышкой по компоненту;
- onKeyDown - когда при нажатии на кнопку на клавиатуре она оказалась в нижнем положении;
- onKeyUp - когда при отпускании клавиатурной кнопки она оказалась в верхнем положении;
- onKeyPress - возникает при нажатии на клавиатурную кнопку. От событий onKeyDown и onKeyUp оно отличается типом
используемого параметра Key ;
- onMouseDown - когда при нажатии кнопки мышки она оказалась в нижнем положении;
- onMouseUp - когда при отпускании кнопки мышки она оказалась в верхнем положении;
- onMouseMove - возникает при перемещении указателя мышки над компонентом.
В начале работы любой программы происходит очень важное событие событие нашего основного компонента - Формы, onCreate.
Оно происходит перед появлением Формы на экране. Это событие используется для задания свойств тех элементов программы, которые нуждаются
в настройке, например, размеры и положение Формы на экране. Если вы захотите сделать невидимую программу, можно приравнять нулю
ширину Width и высоту Height Формы. На этапе проектирования сделать этого нельзя, т.к. это помешает работе, поэтому
делаем это по событию onCreate:
Form1.Width := 0;
Form1.Height := 0;
Дополнительно нужно убрать и заголовок Формы, выбрав в Инспекторе Объектов параметр BorderStyle равным None. Теперь Форма на экране не появится.
Единственным визуальным признаком останется появление её "значка" на панели задач. В дальнейшем я расскажу, как избавиться и от него.
|
|