4. Первое приложение «Привет, МИР!»

Традиционно начнем с простейшего приложения. Кинем на форму кнопку и по нажатию кнопки покажем сообщение «Привет, МИР!».
Рис 4

Откроем редактор скриптов. Как видите, кроме модуля «Main» других модулей нет. Нет и модуля формы «Форма 1», модули форм создаются по необходимости. В данном случае такая необходимость есть. Добавим модуль формы. Рис 5
Выберите нужную форму. У нас пока только одна форма, так что с выбором проблем не будет.
Рис 6
Модуль формы добавлен. В списке отображается имя формы, а в скобках имя компонента формы.
Рис 7
Выберите форму и напишите следующий код:

procedure ButtonClick(Sender: TObject);
begin
  MsgBox('DataExpress', 'Привет, МИР!!!');
end;
procedure Form_Create;
begin
  dxButton1.OnClick := @ButtonClick;
end;

Давайте выйдем из дизайнера и посмотрим, что получилось.
Рис 8

А теперь рассмотрим код поподробнее. Программирование в 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. Оно выглядит следующим образом: Рис 9

Если дважды щелкнуть по свойству с приставкой «On» или по узлу из ветки «Events», то в редактор вставится заготовка процедуры-обработчика события.