Структура проекта (1)
Окно структуры проекта после создания проекта отображается в левой верхней части экрана. Оно содержит информацию о структуре исходного кода программы (именно поэтому не содержит информации, если активно окно дизайнера формы). Для того чтобы посмотреть данную информацию, следует переключиться в окно редактора кода. После активизации окна редактора кода окно Structure заполнится информацией (рис. 7).
Рисунок 7
Рассмотрим возможность создания первой программы в среде Delphi, которая в данном случае называется проектом. Проект (Project) — совокупность файлов, используемые средой разработки (точнее говоря, компилятором Turbo Delphi) для итоговой генерации программы. Вы уже создали новый проект ранее, выбрав в главном меню пункт File, New, VCL Forms Application — Delphi for Win32.
Turbo Delphi позволяет создавать программы только для операционной системы Windows (отсюда сочетание Delphi for Win32) на основе библиотеки визуальных компонентов Visual Components Library (VCL). Каждое Windows-приложение выполняется в собственном окне — главном окне соответствующего приложения. Закрытием этого окна пользователь закрывает приложение. При создании проекта создается одна форма — она и является главным окном приложения. Если в проекте несколько форм, то при необходимости можно сделать главным окном любую другую форму.
Размеры формы можно менять произвольным образом и размещать
в ней некоторые компоненты из палитры компонентов. Для того чтобы это сделать в форме, необходимо сначала выполнить щелчок на пиктограмме нужного компонента, а затем в том месте формы, где будет располагаться компонент. Если на форму поместить несколько одинаковых компонентов, то именем (свойство Name) этого элемента будет имя этого компонента и порядковый номер. Например, Label1, Edit1, Label2, Edit2, Label3 и т. д. При выполнении приложения форма будет по умолчанию отображаться в том же виде, как и при проектировании, т. е. будет иметь те же размеры и содержать те же компоненты.
Поместите на форму компонента произвольные компоненты с закладки Standard. Обратите внимание, содержимое инспектора объектов будет меняться в зависимости от выбранного компонента (рис. 4). Созданное окно может принять вид, представленный на рисунке 8.
Рисунок 8
Если, используя инспектор объектов, добавить процедуру обработки нажатия на кнопку, для чего необходимо выполнить двойной щелчок мышью на требуемом событии (событие onClick для компонента Button1) в инспекторе объектов, то содержимое редактора кода будет иметь вид:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
RadioGroup1: TRadioGroup;
Label1: TLabel;
CheckBox1: TCheckBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
end.
Из листинга видно, что в рамках формы класса TForm1 описываются все присутствующие на форме компоненты: Label11, Button1, CheckBox1, RadioGroup1, Memo1, и заголовок процедуры Button1Click. В реализационной части, после служебного слова implementation, создана заготовка для всей процедуры, в которой и будем вписывать необходимый код. Параметр Sender передается в любой процедуре обработки события и определяет компонент формы, где произошло событие.
Все события, на которые приложение может реагировать, разделяются на пользовательские и системные. К пользовательским относятся события, связанные с клавиатурой или мышью, например OnClick — одинарный щелчок левой клавишей мыши (именно это событие является наиболее распространенным и именно для его обработки нами была создана процедура в предыдущем примере); OnDblClick — двойной щелчок левой клавишей мыши; OnMouseDown — нажатие клавиши мыши; OnMouseUp — отпускание клавиши мыши; OnMouseMove — перемещение мыши.
В некоторых из этих событий в качестве параметров могут передаваться координаты точки на экране, где произошло событие — X, Y, кнопка мыши — параметр Button, значение которого является одна из констант, соответствующей нажатой левой клавиши — mbLeft, средней клавиши — mbMiddle, правой клавиши — mbRight, а также параметр Shift, значение которого равно ssAlt, если нажата клавиша [Alt], ssCtrl — если клавиша [Ctrl], ssShift — если клавиша [Shift].
Например, автоматически созданный шаблон процедуры обработки нажатия клавиши мыши на форме имеет вид:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
end;
Кроме пользовательских событий, существуют программно управляемые события. Отдельно рассмотрим события, обрабатываемые самой формой: событие OnCreatе происходит в момент создания формы; OnClose генерируется, когда форма должна быть закрыта. Два данных события происходят с формой всего один раз в отличие от других: OnShow — возникает, когда форма должна стать видимой, OnHade — когда форма должна быть убрана с экрана, OnPaint — перед тем, как форма будет перерисована на экране.
Существуют события, которые формируют сами элементы управления, например: OnEnter событие, которое появляется, когда элемент управления становится активным, и OnExit событие, возникающее, когда элемент управления перестает быть активным. Данные два события существуют только у элементов управления и только в том случае, если свойство Enabled имеет значение True. Остальные события будут рассмотрены по мере описания отдельных компонентов.
Запустить проект на исполнение можно либо нажатием кнопки F9, либо через главное меню: Run/Run, либо нажатием соответствующей кнопки на панели инструментов:
Проект в простейшем случае представляет собой совокупность
следующих файлов:
1) файл описания проекта (bdsproj-файл) — файл специального формата, в котором записана общая информация о проекте;
2) главный модуль (dpr-файл) содержит инструкции, обеспечивающие запуск нашей программы;
3) модуль формы (dfm-файл) содержит информацию о настройках
и компонентах, которые присутствуют на форме. Модуль формы формируется автоматически при выполнении настроек формы, перенесении на нее и настройки компонентов;
4) модуль реализации (pas-файл) содержит информацию только
о присутствующих на форме компонентах и процедурах обработки событий на этих компонентах;
5) файл ресурсов (res-файл);
6) файл конфигурации (cfg-файл);
7) исполняемый файл (exe-файл), который создается при запуске программы на исполнение.
Сохранение всех файлов проекта осуществляется через пункт главного меню File, Save all (сохранить все). Первый раз при сохранении потребуется сохранить два файла: модуль формы и файл проекта. Поскольку при работе с проектом автоматически создается довольно много файлов, рекомендуется сохранять их в заранее подготовленном каталоге.
Задания:
1. Создайте новый проект, поместите на форму компоненты Label1, Edit1, Button1 и заготовки процедур таких событий, как создание формы, двойной щелчок левой клавиши мыши на всей форме, активизация компонента Edit.
2. Измените значения свойств Width, Height, Top, Left как с помощью инспектора объектов, так и непосредственно используя мышь.
3. Измените свойства Visible, Color, Cursor, Enabled и Ctl3D для каждого компонента в отдельности.
4. С помощью свойств ShowHint и Hint задайте для каждого элемента управления подсказки.
5. Сохраните данный проект и просмотрите каждый из созданных файлов.
6. Запустите приложение на исполнение.
Лабораторная работа 2. Перенесение программы
из Pascal в Delphi
Цель: научиться создавать простейшие программы на языке программирования Delphi.
Перед тем, как изучать язык программирования Delphi, рассмотрим вопрос совместимости и переноса программ. Предположим, что имеется программа на языке программирования Pascal, которая на основании введенного значения высоты вычисляет время падения тела. Данная программа имеет вид, представленный на рисунке 9.
Рисунок 9
При начальном знакомстве со средой программирования Delphi и программирования в среде Windows необходимо учитывать два момента: во-первых, операторы ввода и вывода данных не работают, поэтому от них необходимо избавиться; во-вторых, для того чтобы были начаты расчеты, необходимо какое-либо событие. Самым простым и распространенным событием является нажатие на экранную кнопку. Поэтому поместим на форму, используя редактор формы, два компонента Button со страницы Standard. Используя свойство Caption, можно задать надпись на кнопках, а посредством свойства Font — шрифт для данной надписи. Напишем на первой кнопки «Вычислить», а на второй — «Закрыть».