События в Delphi

Автор: | 12.11.2017

События в Delphi

Операционная система Windows — многозадачная, т.е. несколько программ в ней могут функционировать одновременно. Когда, например, мы щёлкаем по кнопке в окне нашей программы, система Windows определяет, что произошло событие именно в нашей программе, и посылает ей сообщение об этом. Наша программа должна соответствующим образом отреагировать на него. Для этого мы, как программисты, должны написать код-обработчик этого события. Таким образом, структура программы для Windows представляет собой набор подпрограмм, каждая из которых ответственна за обработку конкретного события и вызывается только при его возникновении. Удобство Delphi состоит в том, что мы избавлены от необходимости получать сообщения от Windows сами, Delphi это делает за нас. Каждый компонент имеет впечатляющий набор событий, на которые он может реагировать. Программист сам определяет, какие события в программе требуется обрабатывать.

Щелкните на компоненте Edit1. Он «появится» в Инспекторе объектов. Посмотрите: в Инспекторе объектов две вкладки: Properties (свойства) и Events (события). Перейдите на вкладку Events. Чтобы создать обработчик нужного события, нужно дважды кликнуть по нему мышкой. А если раскрыть выпадающий список, в нём будут находиться уже готовые обработчики, которые могут подходить для этого компонента. Таким образом, один обработчик может вызываться для обработки событий нескольких компонентов.

Мы можем изменить нашу программу так, чтобы текст на форме появлялся прямо в момент его ввода. В момент ввода у Edit1 меняется свойство Text — в нём появляется новая буква! Значит, воспользуемся событием onChange

1.Кликаем дважды по onChange, и оказываемся внутри только что созданного обработчика.

2.Присваиваем свойству Caption компонента Label1 значение свойства Text компонента Edit1

3. Запускаем программу, всё работает.

Далее рассмотрим событие onClick. Как вы уже могли догадаться, это событие возникает при щелчке мышкой на компоненте. Воспользуемся им, чтобы очищать строку ввода от уже введённых символов. В обработчике нужно присвоить свойству Text значение пустой строки. Строка в Delphi образуется заключением текста в одинарные кавычки (‘):
Так в Delphi образуется строка
Значит, пустая строка — это кавычки без текста: ». Не должно быть даже пробела, иначе он окажется в строке ввода:

Есть другой способ, воспользоваться специально предназначенным для этого методом компонента Edit, который так и называется Clear

Да удобство в дальнейшем вам придется использовать компонент onEnter. Так как пользователи которые при вводе текста захотят что-то исправить, и щёлкнут мышкой в том месте текста то всё сотрется. Поэтому когда вы «входите» в него и компонент получает фокус ввода, или использовать для очистки специальную кнопку и её событие onClick.
Конечно, у каждого компонента свой набор событий. Вот один из них:

  • onChange
  • onClick
  • onEnter

Также есть ещё важные события, которые есть почти у каждого визуального компонента.

  • onExit — возникает, когда компонент теряет фокус ввода;
  • onDblClick — возникает при двойном щелчке мышкой по компоненту;
  • onKeyDown — когда при нажатии на кнопку на клавиатуре она оказалась в нижнем положении;
  • onKeyUp — когда при отпускании клавиатурной кнопки она оказалась в верхнем положении;
  • onKeyPress — возникает при нажатии на клавиатурную кнопку. От событий onKeyDown и onKeyUp оно отличается типом используемого параметра Key ;
  • onMouseDown — когда при нажатии кнопки мышки она оказалась в нижнем положении;
  • onMouseUp — когда при отпускании кнопки мышки она оказалась в верхнем положении;
  • onMouseMove — возникает при перемещении указателя мышки над компонентом.

В начале работы любой программы происходит очень важное событие событие нашего основного компонента — Формы, onCreate. Оно происходит перед появлением Формы на экране. Это событие используется для задания свойств тех элементов программы, которые нуждаются в настройке, например, размеры и положение Формы на экране. Если вы захотите сделать невидимую программу, можно приравнять нулю ширину Width и высоту Height Формы. На этапе проектирования сделать этого нельзя, т.к. это помешает работе, поэтому делаем это по событию onCreate:

 Form1.Width := 0;
  Form1.Height := 0;

Дополнительно нужно убрать и заголовок Формы, выбрав в Инспекторе Объектов параметр BorderStyle равным None. Теперь Форма на экране не появится. Единственным визуальным признаком останется появление её «значка» на панели задач. В дальнейшем я расскажу, как избавиться и от него.

Добавить комментарий