Среда разработчика Delphi позволяет визуально строить приложение. После запуска системы на экране размещается пустая форма – главное окно приложения. На данной форме можно размещать различные компоненты, а также добавлять в проект новые формы приложения – дочерние.
Проект имеет расширение *.dpr, формы – *.dfm, исходные тексты модулей – *.pas, *.dcu – откомпилированные модули.
В верхней части располагается главное меню Delphi, ниже представлены страницы палитры компонент, в левой части отображается окно инспектора объектов (Object Inspector), с помощью которого можно на этапе проектирования изменять различные свойства компонентов (закладка Properties) и описывать реакцию на события (Events).
Структура программы, созданной с помощью Delphi, несколько отличается от традиционной, что, в свою очередь, обусловливает особенности создания подобных программ. Подобную программу можно представить себе, состоящей из двух частей: интерфейса – части программы, предназначенной для ввода в программу и вывода из нее информации, и собственно операторов, предназначенных для непосредственного решения задачи. В своей работе программа взаимодействует с операционной системой, различными внешними устройствами, базами данных, файлами, другими программами и .т.п.
Интерфейс представляет собой совокупность объектов, с помощью которых осуществляется передача информации в соответствующем направлении, – формы, диалоговые окна, элементы управления и т.д. Во многом выбранный интерфейс определяет структуру всей программы.
Так как объекты в программе являются достаточно автономными, для передачи информации между ними, а также между программой и операционной системой, программой и внешними устройствами и т.д. используется система сообщений. Обычно программа после своего запуска находится в режиме ожидания очередного сообщения, при появлении которого программа анализирует его, определяет, какие действия следует выполнить, и выполняет их, после чего ожидает следующее сообщение. Так как при появлении различных сообщений программа, как правило, выполняет различные действия, все исполняемые операторы представляют собой совокупность подпрограмм, оформленных в виде тех или иных методов различных объектов (включая и методы обработки сообщений и событий), либо самостоятельных подпрограмм.
Приложение – основной связующий объект проекта, организующий цикл по обработке поступающих сообщений.
Форма – интерфейсный элемент, посредством которого осуществляется обмен информацией между приложениями и внешними устройствами. Формы размещаются в приложении, а само приложение может содержать одну или несколько форм.
Компоненты – объекты, размещаемые на формах и предназначенные для выполнения тех или иных операций по отображению, получению и преобразованию информации.
Основные свойства компонентов
Свойство – важный атрибут любого компонента. Изменение свойства в инспекторе объектов сразу отражается на визуальной компоненте. Например, если выделить главную форму и в инспекторе объектов поменять свойства Width, то незамедлительно изменится ширина окна формы. Значение свойств можно менять и программно, в ходе выполнения приложения.
Рассмотрим основные свойства, присущие большинству компонентов.
Name – имя компоненты.
Height – длина компоненты.
Width – ширина компоненты.
Top – положение левого верхнего угла компоненты по оси Y.
Left – положение левого верхнего угла компоненты по оси X.
Caption – заголовок.
Font – шрифт текста компоненты.
Style – стиль.
Text – отображаемый текст (например, для компоненты ввода Edit)
и др.
Для программного изменения свойства следует указать имя компонента и свойство через точку. Например:
Form1.Caption:=’Мое первое Windows-приложение’;
If CheckBox1.Checked=true then ….
События компонентов
Обработка событий заключается в написании кода – обработчика реакции на какое-либо событие. Например, при активном главном окне найдем в инспекторе объектов на закладке Events событие OnClose, которое возникает при закрытии окна. Дважды щелкнув на пустое поле справа от имении события, Delphi автоматически построит каркас обработчика – создаст процедуру:
procedure TИмяФормы.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{Тело процедуры}
end;,
в теле которой можно написать, например, код для отображения окна сообщения:
ShowMessage(‘Форма закрывается!’);
Событие OnCreate возникает при создании компонента, OnClick – при щелчке мышкой по компоненте, OnDblClick – для двойном щелчке мышкой по компоненте, OnMouseMove – при движении курсора мыши над компонентом и т.п.
Таким образом, чтобы, например, вызвать другую форму при нажатии кнопки, необходимо написать соответствующий код в обработчике события OnClick для данной кнопки.
Компоненты Delphi
Палитра компонентов содержит несколько страниц (Standard, Additional, Dialog, Sample и др.)
Рассмотрим некоторые компоненты страницы Standard (стандартные компоненты).
1) MainMenu – главное окно программы. Служит для создания сложных иерархических меню.
2) PopupMenu – вспомогательное меню, обычно появляется в виде отдельного окна после нажатия правой кнопки мыши. Привязывается к конкретному компоненту.
3) Label – метка. Используется для размещения на форме не очень длинных однострочных надписей.
4) Edit – строка ввода. Предназначена для ввода и/или отображения одной текстовой строки.
5) Memo – многострочный текстовый редактор. Используется для ввода и/или отображения многострочного текста.
6) Button – командная кнопка. Обработчик события OnClick обычно используется для реализации некоторой команды.
7) CheckBox – независимый переключатель. Щелчок мышью по компоненту в работающей программе изменяет логическое свойство Checked.
RadioButton – зависимый переключатель. Обычно объединяется как минимум еще с одним таким же компонентом в группу. Щелчок по переключателю приводит к автоматическому освобождению ранее выбранного переключателя в той же группе.
9) ListBox – список выбора. Содержит список предлагаемых вариантов (опций) и дает возможность проконтролировать текущий выбор.
10) ComboBox – комбинированный список выбора. Представляет собой комбинацию списка выбора и текстового редактора.
11) GroupBox – группа элементов. Используется для группировки нескольких связанных по смыслу компонентов.
12) RadioGroup – группа зависимых переключателей. Содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей.
13) Panel – Панель. Используется для визуального объединения нескольких компонентов.
Некоторые компоненты страницы Additional:
1) BitBtn – командная кнопка с надписью и пиктограммой.
2) SpeedButton – пиктографическая кнопка. Обычно используется для быстрого доступа к тем или иным опциям главного меню.
3) MaskEdit – специальный текстовый редактор. Способен фильтровать вводимый текст, например, для правильного ввода даты (задается маска).
4) StringGrid – таблица строк. Обладает мощными возможностями для представления текстовой информации в табличном виде.
5) DrawGrid – произвольная таблица. Строки этого компонента могут содержать произвольную информацию, в том числе и рисунки.
6) Image – рисунок. Предназначен для отображения рисунков.
7) Shape – фигура. Помогает вставить правильную графическую фигуру – прямоугольник, эллипс, окружность и т.п.
При изучении возможностей компонентов следует воспользоваться встроенной справочной службой Delphi.
Работа с формами
Как известно, существуют информационные окна (формы) и диалоговые. Информационное окно предназначено в основном для вывода информации пользователю. Диалоговые окна – специальные формы, предназначенные для организации диалога пользователя с программой посредством этого окна. Здесь возможна двусторонняя передача информации – как программе, так и пользователю.
Окна могут быть также модальными и немодальными. При открытии окна в немодальном режиме, возможен переход на окно, его вызвавшее, и на другие. При вызове окна в модальном режиме невозможен переход на другие окна до тех пор, пока не закроется модальное окно.
Вызов модального окна осуществляется с помощью метода ShowModal:
Имя_формы.ShowModal;
Немодальное окно вызывается методом Show.
Метод Close закрывает окно (при этом возникает событие закрытия окна OnClose), Hide – делает скрытым (для его отображения используется метод Show).
С каждой формой связан модуль (*.pas). Определив глобальные переменные, например, в главной форме, их можно сделать доступными в дочерних окнах с помощью пункта меню File – Use unit и указать модуль, содержащий описание глобальных переменных.
Обратиться к компоненте другой формы можно, указав сначала имя формы, затем имя компоненты и требуемое свойство. Например,
If Form2.Edit1.Text = » {Если не введено значение} then
Begin
// Выдаем сообщение об ошибке
ShowMessage(‘Пустое поле!’);
// Устанавливаем курсор на Edit1 для ввода
Form2.Edit1.SetFocus;
End;