4. Первое приложение «Привет, МИР!»
Традиционно начнем с простейшего приложения. Кинем на форму кнопку и по нажатию кнопки покажем сообщение «Привет, МИР!».
Откроем редактор скриптов. Как видите, кроме модуля «Main» других модулей нет. Нет и модуля формы «Форма 1», модули форм создаются по необходимости. В данном случае такая необходимость есть. Добавим модуль формы.
Выберите нужную форму. У нас пока только одна форма, так что с выбором проблем не будет.
Модуль формы добавлен. В списке отображается имя формы, а в скобках имя компонента формы.
Выберите форму и напишите следующий код:
procedure ButtonClick(Sender: TObject); begin MsgBox('DataExpress', 'Привет, МИР!!!'); end; procedure Form_Create; begin dxButton1.OnClick := @ButtonClick; end;
Давайте выйдем из дизайнера и посмотрим, что получилось.
А теперь рассмотрим код поподробнее. Программирование в DataExpress, как и во многих средствах разработки, является событийно-ориентированным. В процессе работы приложения возникают какие- то события (нажатие на кнопку, переход на запись, открытие окна и т. д.) и разработчик может эти события обработать, т. е. запрограммировать реакцию приложения на то или иное событие. Чтобы обработать событие, нужно назначить ему процедуру-обработчик. Делается это в процедуре Form_Create. Это стандартная процедура, которая вызывается конструктором при создании формы.
procedure Form_Create; begin dxButton1.OnClick := @ButtonClick; end;
dxButton1 – это имя компонента нашей кнопки. Чаще всего обращение к компоненту осуществляется через его имя, как в данном примере. OnClick – это свойство компонента, которое отвечает за событие нажатия кнопки, хранит адрес процедуры-обработчика события. Адрес процедуры присваивается свойству через операцию взятия адреса (значок @). В нашем примере – это @ButtonClick. Сама процедура-обработчик должна находиться выше процедуры Form_Create. Вот она:
procedure ButtonClick(Sender: TObject); begin MsgBox('DataExpress', 'Привет, МИР!!!'); end;
Обратите внимание, что процедура имеет один параметр Sender типа TObject. Sender указывает на объект, который вызвал процедуру-обработчика. В нашем случае Sender = dxButton1. В зависимости от типа события у процедур-обработчиков может быть разное количество параметров. Свойство OnClick имеет тип TNotifyEvent. Вы можете найти определение этого типа в дереве классов в узле Events. Оно выглядит следующим образом:
Если дважды щелкнуть по свойству с приставкой «On» или по узлу из ветки «Events», то в редактор вставится заготовка процедуры-обработчика события.