Главная » Delphi » События и сообщения Delphi

0

Те, кому уже приходилось создавать приложения Windows традиционными методами, безусловно оценят простоту использования событий Delphi. Исключается всякая  необхо димость  организации перехвата сообщений Windows,  их обработки, анализа и т.д. Более подробная информация по этой теме приведена в главе 3, “Приключения сообщения”.

Как правило, события Delphi происходят в ответ  на сообщения Windows.  Так,  на пример, событие OnMouseDown (кнопка мыши  нажата) объекта TButton фактически инкапсулирует сообщение Windows  WM_xBUTTONDOWN. Обратите внимание, что  собы тие выполняет предварительную обработку сообщения и предоставляет информацию о том, какая именно из кнопок мыши была нажата и где находился курсор мыши, когда это произошло. Подобную  информацию — но уже о нажатии клавиши  клавиатуры — предос тавляет событие OnKeyDown. Ниже  приведен созданный Delphi  код обработчика этого события:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin end;

Вся необходимая для написания обработчика события информация — уже в ваших руках. Обладая  опытом программирования в Windows,  можно  оценить, насколько та кая  форма удобнее  самостоятельного разбора параметров сообщения LParams или WParams. Вся эта  работа выполняется автоматически, и остается только  воспользо ваться  ее результатами, которые значительно понятнее, чем стандартные параметры сообщений Windows. Более  подробная информация о том, как в Delphi функциониру ет внутренняя служба обработки сообщений, приведена в главе  3, “Приключения со общения”.

Необязательность программирования

Одним  из  самых  значительных (хоть  и  спорных) достоинств системы событий Delphi  (по сравнению со стандартной системой обработки Windows)  является то, что теперь необязательно программировать обработчики событий (технология contract free). В отличие от обработки стандартных сообщений Windows,  не требуется вызывать ни унаследованный обработчик, ни передавать какую либо информацию назад в Windows после обработки сообщения.

Обратная сторона медали заключается в том, что нельзя сделать больше, чем по

зволено. Программист оказывается полностью во власти  того,  кто спроектировал этособытие, поскольку  именно этот  человек определил тот уровень  возможностей, кото рый  будет предоставлен при  обработке данного события в приложении. Так,  в обра ботчике OnKeyPress можно  изменить или  просто удалить  информацию о нажатых клавишах, в то время  как обработчик OnResize (при  изменении размеров) только  из вещает  о происшедшем событии, не позволяя ни предотвратить его,  ни повлиять на устанавливаемые размеры объекта.

Но  не  стоит  расстраиваться, Delphi  вовсе  не  запрещает обращаться непосредст венно  к сообщениям Windows. Это не так просто, как работа с системой событий, по скольку обработка сообщений подразумевает наличие у программиста определенного опыта  и знаний по обработке сообщений Windows,  но это  вполне возможно. Ключе вое слово  message (сообщение) предоставляет полную  свободу  перехватывать и об рабатывать все сообщения Windows.  Более подробная информация об обработчиках сообщений Windows приведена в главе 3, “Приключения сообщения”.

В этом —  весь  Delphi. Он  универсален и предоставляет каждому  свое,  обеспе чивая  простоту и ясность при  высокоуровневом программировании и оставляя, в случае необходимости, возможность эффективного и нестандартного низкоуров невого программирования.

Упрощение разработки прототипов

Поработав с Delphi  некоторое время, можно  заметить, что предъявляемые этим па кетом требования к уровню знаний достаточно размыты. Создание в Delphi  даже самого первого приложения приносит новичкам заметные дивиденды. Это  выражается в со кращении времени разработки и получении надежных устойчивых продуктов. Delphi обладает просто неограниченными возможностями в том аспекте разработки приложе ний,  который доставлял программистам в среде  Windows больше  всего неприятностей. Речь идет о создании пользовательского интерфейса (UI — User Interface).

Иногда процедуру  разработки пользовательского интерфейса и общего  макета  окна программы называют “созданием прототипа” (prototyping). В невизуальной среде  про граммирования создание прототипа приложения зачастую  требует  существенно боль ших усилий,  чем создание собственно рабочей части  программы или ее внутренней структуры  (back  end). Тем  не менее, именно реализация основного плана  программы является главной целью  ее создания. Безусловно, создание привлекательного и интуи тивно  понятного интерфейса также является важнейшим условием успеха. Однако кому будет нужна коммуникационная программа с превосходно выполненными диалоговыми окнами  и удобным интерфейсом, но не способная переслать данные  через модем? Про граммы  во многом  подобны людям — приятная внешность всегда располагает, но этого мало  для  того,  чтобы  данный человек занял  сколько  нибудь  заметное место  в нашей жизни. Поэтому оставим дизайн  приложений без комментариев.

Delphi позволяет создавать программу, вкладывая максимум сил и умения  в ее рабо чую часть,  сократив до минимума  затраты времени на реализацию пользовательского интерфейса. Потратив некоторое время  на обучение работе с Delphi, можно  легко  и просто разрабатывать пользовательские интерфейсы, не сравнимые ни с какими  други ми, созданными с помощью традиционного инструментария. Более  того,  они станут не просто элегантными, но и оригинальными, т.е. будут обладать “изюминкой” в виде раз работанных пользователем новых элементов управления.

Расширяемость Delphi

Благодаря объектно ориентированной  природе Delphi можно  создавать собствен ные компоненты не только  с нуля, но и на основе уже существующего  богатого набора стандартных компонентов. Более подробная информация о пользовательских и других типах компонентов приведена в части IV, “Компонент ориентированная разработка”.

Помимо создания и интеграции в среду разработки новых  компонентов, Delphi также допускает интеграцию в IDE готовых подпрограмм, называемых экспертами (experts). Интерфейс Expert Interface позволяет дополнять визуальную  среду  разра ботки  своими  пунктами  меню и диалоговыми окнами, предназначенными для расши рения ее функциональных возможностей. Примером подобного эксперта является утилита  Database  Form  Expert, вызвать которую  можно  в меню  Database (База  дан ных)  главного окна.  Процесс создания собственного эксперта и интеграции его  в IDE Delphi описан в главе 17, “Применение интерфейса API Open Tools”.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии