Событийно-управляемые программы: Методические указания к разработке проектов в DELPHI, страница 6

Полный список событий, ассоциированный с данным компонентом, можно просмотреть на вкладке Events Инспектора объектов. На рисунке 3.2 приведена вкладка Events для формы.

Рисунок 3.2 - Вкладка Events для формы

Для того, чтобы связать возникновение события с процедурой его обработки необходимо выполнить двойной щелчок мыши на свободном поле, справа от имени события. DELPHI поместит нас в окно редактора кода, при этом текстовый курсор будет находиться внутри заготовки процедуры - обработчика этого события. С помощью операторов языка мы должны запрограммировать действия, которые и определяют поведение приложения при возникновении этого события.

4. ОБРАБОТКА СОБЫТИЙ

Напомним о том, что приложения, разрабатываемые нами, функционируют под управлением и во взаимодействии с операционной системой. Обо всех происходящих в системе событиях ядро WINDOWS информирует окна путем посылки сообщений их оконным функциям. Например, при создании окна посылается сообщение vm_Create, при его перемещении – сообщение vm_Move, в ответ на нажатие клавиши на клавиатуре посылается сообщение vm_Char, при перемещении мыши – сообщение vm_MouseMove и т.д. Программирование, ориентированное на обработку событий – неотъемлемая черта WINDOWS.

Одна из ключевых целей среды DELPHI – скрыть от пользователя сложность программирования в WINDOWS и, одновременно с этим, предоставить полный доступ к механизму событий, предоставляемому WINDOWS.

Событийно-управляемые программы это такие, которые изменяют свое поведение в зависимости от происходящих в системе событий Изменение поведения может повлечь за собой либо изменение внешнего вида оконной формы, либо изменение реакции на одно и то же событие.

Эти изменения производят написанные пользователем процедуры, называемые обработчиками событий. Как было сказано ранее, DELPHI предоставляет пользователю механизм, связывающий возникновение события с соответствующей процедурой его обработки.

Поведение любого объекта определяется тем, какие обработчики и для каких событий он имеет. Процедура обработки события является уникальной, эта уникальность определяется вкладываемыми в нее замыслами разработчика. По этой причине, невозможно дать какие-то методические рекомендации по написанию кода обработчика событий. Отметим, однако, что создание обработчиков является сущностью программирования в DELPHI.

В настоящее время не существует каких-либо жестких правил написания программы. С приобретением опыта у каждого пользователя появляется свой собственный стиль. Однако, существуют некоторые общие рекомендации, которых рекомендуется придерживаться с тем, чтобы программы были понятны не только разработчику спустя некоторое время после их написания, но и другим пользователям. Это позволяет быстрее понять суть  работы программы, легче находить и исправлять ошибки, проще вносить в нее необходимые изменения. Эти рекомендации направлены на улучшение читаемости программы за счет более четкой ее структуризации. Их реализация не требует практически никаких дополнительных усилий. Приводим некоторые из них.

При наборе текста программы рекомендуется пользоваться системой отступов от левого края с тем, чтобы можно было легко понять структуру программы, различать отдельные ее блоки. Система отступов предполагает размещение отдельных строк программы с различными отступами от начала строки, одинаковыми для всех операторов, входящих в блок. При этом, чем глубже вложенность, тем больше отступ от начала строки. Это особенно важно для составных операторов, имеющих операторные скобки begin и end. Эти ключевые слова следует сразу писать одно под другим с одинаковым отступом, а затем уже операторы, помещаемые между ними, с дополнительным отступом. В этом случае легко выделить отдельные ветви программы, легче избежать непарности операторных скобок.

Среда DELPHI позволяет упростить создание отступов в программе. Параметры среды по умолчанию устанавливаются такими, что при создании новой строки (при нажатии клавиши Enter) курсор автоматически устанавливается в новой строке в позицию, соответствующую началу текста в предыдущей строке.