Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы программирования в Delphi. Учебно-методическое пособие
.pdf
Основы программирования в Delphi
В файле проекта находится информация о модулях, составляющих данный
проект. Файл проекта автоматически создается и редактируется средой разра-
ботки Delphi и не предназначен для редактирования.
Файл исходного текста – это программный модуль (Unit), который предназначен для размещения программного кода. В этом файле программист размещает текст программы, написанный на языке Object Pascal. Модуль Delphi имеет следующую структуру:
unit Unit2;
interface
// Раздел объявлений функций, процедур и др.
implementation
// Раздел реализации функций, процедур и др.
begin
// Раздел инициализации
end.
В разделе объявлений описываются различные типы, переменные, заголовки процедур и функций, которые могут быть использованы другими моду-
лями через операторы подключения библиотек. В разделе реализации располагаются тела процедур и функций, описанных выше в разделе объявлений, а
также типы переменных, процедуры и функции, которые будут функциониро-
вать только в пределах данного модуля. Раздел инициализации в Delphi используется крайне редко, поэтому его можно пропускать.
1.2. Создание простого приложения на Delphi 7
Для изучения последовательности создания программ в Delphi 7 рассмот-
рим создание простого приложения.
Пример 1. Создадим программу, которая после запуска на выполнение
имеет вид представленый в рис. 1.3. После ввода чисел в текстовые поля и
щелчка по кнопкам Сложение, Вычитание, Умножение или Деление в поле
Ответ должен появляться соответственно результат сложения, вычитания,
умножения или деления чисел а и b.
11

Основы программирования в Delphi
Рис. 1.3 Простое приложение на Delphi 7
Для создания нового приложения следует выполнить команду Файл
/Создать/ Приложение. При этом на экране появится пустая форма (она назы-
вается Form1), а в редакторе кода откроется файл Unit1.pas, соответствующий
модулю Unit1, в котором хранится описание работы этой формы. После запус-
ка Delphi эту команду можно и не выполнять, так как сразу после запуска Del-
phi на экране появится пустая форма и файл Unit1.pas.
Создание приложения условно можно разделить на два основных этапа:
1) проектирование пользовательского интерфейса путем размещения на форме
различных элементов управления (кнопок, текстовых полей и т.д.) и опреде-
ление свойств данных элементов управления;
2) написание программного кода, который определяет именно то, что должна
делать наша программа.
Проектирование пользовательского интерфейса
Как показано на рис. 1.3 разместите на форме:
- 3 текстовых поля для ввода чисел a и b, и вывода ответа;
- 4 поля меток для отображения на форме поясняющих записей;
- 4 командные кнопки для запуска процесса вычисления.
Для размещения любого элемента управления, следует щелкнуть на палитре компонентов на соответствующем значке и затем на форме определить раз-
12

Основы программирования в Delphi
меры этого управляющего элемента (при нажатой левой кнопки мыши указать
противоположные углы прямоугольной области).
Свойства управляющего элемента Текстовое поле (Edit)
Как видно из примера, числа а и b вводятся через соответствующие текстовые поля, а результат математической операции выводится также в текстовое поле. Компонент Текстовое поле (Edit) находится на панели компонентов
Стандартные.
После размещения трех текстовых полей и изменения их размеров следу-
ет определить их свойства. Свойства управляющего элемента определяются с
помощью Инспектора Объектов. Во вкладке Параметры с левой стороны
расположена колонка свойств, а с правой стороны значения этих свойств. Для
изменения значения свойства следует мышкой указать на нужную строку, а за-
тем на правом поле этой строки следует ввести новое значение свойства.
Одним из наиболее важных свойств у всех управляющих элементов явля-
ется свойство Name. Это свойство определяет имя управляющего элемента, с
помощью которого можно обращаться к нему в программе. Можно присвоить
произвольные имена, но желательно, чтобы имена начинались с некоторых
префиксов (приставок), которые показывают на тип управляющего элемента.
Например, в литературе встречается такие префиксы:
- txt – текстовое поле;
- cmd – командная кнопка;
- lbl – поле меток.
Основная часть имени должен отражать назначения элемента управления.
По умолчанию текстовым полям присваиваются имена: Edit1, Edit2 и т. д.
Другим основным свойством текстового поля является свойство Text, ко-
торое определяет текст появляющиеся в текстовом поле. При запуске програм-
мы текстовое поле должен быть пустым (числа а и b вводятся с клавиатуры).
Поэтому предлагаемое системой значения (Text1, Text2 и т.д.) следует удалить.
Для определения размера и типа шрифта вводимого текста предназначено
свойство Font. При измении этого свойства на экране появится стандартное для
Windows диалоговое окно изменения шрифта. Выберите удобный для вас
шрифт, размер шрифта и нажмите на кнопку ОК.
Свойства управляющего элемента поля меток (Label)
Надписи на форме («Калькулятор», «Первое число:», «Второе число:»,
«Ответ:») играют роль поясняющих записей. Чтобы добавить к разрабатывае-
13

Основы программирования в Delphi
мой программе эти надписи, надо выбрать на панели компонентов Стандарт-
ные компонент Label и поместить его на форме.
После размещения трех полей меток следует определить их свойства. Ос-
новным свойством поля меток является свойство Caption (надпись). Это свойство определяет текст, который появляется на поле Label. При размещении поля меток система Delphi автоматически определяет надписи Label1, Label2 и
т.д. В этом примере следует изменить эти надписи сответственно на «Кальку-
лятор», «Первое число:», «Второе число:», «Ответ:».
Другим важным свойством поля меток является свойство Font, которое
определяет размер и тип шрифта надписи. Измените это свойство на свое
усмотрение.
Свойства управляющего элемента Командная кнопка
Как видно из примера, при щелчке на кнопке Сложение вычисляется сумма a+b и результат выводится на соответствующем поле. При щелчке на кнопке
Вычитание вычисляется разность a-b и результат выводится на соответствующем поле. При щелчке на кнопке Умножение вычисляется произведение a*b и
результат выводится на соответствующем поле. При щелчке на кнопке Деление
вычисляется частное a/b и результат выводится на соответствующем поле.
Управляющий элемент Командная кнопка также находится на панели ком-
понентов Стандартные. После размещения четырех командных кнопок следует определить их свойства.
Основным свойством Командной кнопки является свойство Name и свой-
ство Caption. Как было указано выше значение свойства Name позволяет про-
граммно обращаться к этим командным кнопкам. По умолчанию среда разра-
ботки Delphi 7 присваивает следующие имена: Button1, Button2 и т. д.
Важным свойством командной кнопки является свойство Caption. Это
свойство определяет надпись, которая появляется на командной кнопке. Из рис.
1.3 видно, что значения для этого свойства командных кнопок должны быть соответственно Сложение, Вычитание, Умножение и Деление.
Свойства формы
При выделенной форме на Инспекторе объектов появляются свойства
формы. Наиболее важными свойствами формы являются свойства Name, Cap-
tion и Color. Свойство Caption определяет текст, который появляется на заго-
ловке формы. Как видно из рис. 1.3, необходимо ему присвоить значение «Мой
калькулятор». Свойство Color определяет цвет формы: выбирайте из предпола-
14

Основы программирования в Delphi
гаемого списка цветов цвет на свой вкус. Свойству Name формы автоматически
присваивается имя Form1.
На этом первый этап создания приложения окончен - графический интерфейс пользователя построен. Перейдем к написанию программного кода нашего приложения.
Написание кода приложения
Код приложения вводится и редактируется в окне кода программы. При
создании нового проекта система Delphi в этом окне уже отображает некоторый
код. При размещении элементов управления на форме, в окне кода автоматически появляется дополнительный код. И плюс ко всему, программист должен
ввести дополнительный код, который и определяет прикладные задачи, решае-
мые данной программой.
Прежде чем ввести собственный код проанализируем код нового проекта и
дополнительный код, вводимый при размещении элементов управления.
Код нового проекта
При создании нового проекта система в окне кода отображает код модуля
Unit1. Код вновь созданного проекта приведен ниже:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
15

Основы программирования в Delphi
Проведем анализ этого програмнного кода. Модулем в Pascal считается
некоторый файл кода. Сам проект может состоят из нескольких модулей. Любой модуль состоит из двух основных частей: интерфейсная часть и часть реа-
лизации.
Интерфейсная часть начинается модуля с ключевого слова interface и в
нем указываются модули, функции, типы переменных и переменные которые
могут быть использованы с любого места проекта.
В части реализации указываются модули, функции, типы переменных и
переменные, которые могут быть использованы только в пределах модуля. Да-
лее должны быть приведены программные реализации функций, как интер-
фейсной части, так и части реализации.
Заметим, что в Delphi каждой форме соответствует собственный модуль. В
нашей программе форме Form1 соответствует модуль Unit1. В интерфейсной
части этого модуля, после ключевого слова uses, представлены те стандартные
модули, которые отвечают за работу основных компонентов проекта: работа с
окнами, меню, графикой и т.д.
Затем объявляется новый тип TForm1, как класс. Объявление класса выглядит следующим образом:
type
TForm1 = class (TForm)
private
{ Private объявления }
public
{ Public объявления }
end;
Как видно, класс также состоит из двух частей: часть private и часть public.
В части private приводятся переменные и функции, которые могут быть использованы внутри класса. А в части public приводятся переменные и функции, которые могут быть использованы в пределах проекта или модуля.
После ключевого слова class, в скобках указывается наследуемый класс
TForm. Класс TForm является стандартным классом Delphi, который определяет
свойства формы (представление формы в виде окна, изменение размеров формы и многое другое). Таким образом, наш класс наследует все свойства этого
класса. Кроме стандартных свойств, в разделе public могут быть также определены и другие свойства и методы класса.
После объявления класса, объявляется переменная Form1 класса TForm1:
var
16

Основы программирования в Delphi
Form1: TForm1;
Таким образом, форма Form1 представлена в программе типом (классом)
TForm1, который при создании новой программы не имеет новых полей и ме-
тодов, так как форма пуста.
Далее в модуле следует раздел реализации модуля, в котором имеется всего одна директива компилятора:
{$R *. DFM}
Она предназначена для связывания модуля с описанием соответствующей
ему формы.
Примечание. Описание формы и всех размещенных на ней компонентов
система Delphi 7 хранит в файлах с расширение .dfm. Эти файлы имеют
обычный текстовый формат. Для просмотра содержимого этого файла выполните команду Проект/ Показать Исходный текст.
Создаваемая в среде Delphi 7 программа состоит из нескольких файлов.
Это файлы с исходными текстами на Pascal и файлы описаний форм. Все они
связаны друг с другом.
Кроме того, в среде Delphi 7 имеется множество настроек, которые хранят-
ся в отдельном файле. Набор файлов, в которых содержатся исходные тексты и
различные настройки, называется проектом. Файлы проекта лучше сохранять в
отдельной папке (команда Файл/Сохранить Проект как …). В этой же папке
компилятор в будущем создаст и исполнимое приложение (ехе-файл).
Код проекта, добавляемый при проектировании пользовательского
интерфейса приложения
При проектировании пользовательского интерфейса (этап 1) мы на форме
размещали различные элементы управления и изменяли их свойства. При этом
в окно кода автоматически добавляется код, описывающий эти управляющие
элементы. После ввода всех изменений свойств описание класса TForm1 выглядит следующим образом:
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Button2: TButton;
procedure Button2Click(Sender: TObject);
17

Основы программирования в Delphi
private
{ Private declarations }
public
{ Public declarations }
end;
Как видно из текста программы, в описание класса добавились (по умолчанию в раздел Public) объявления размещенных элементов управления. При
этом значение свойства Name определяет имя переменной. После символа “:”
указывается тип этой переменной. Например, объявление:
Edit1: TEdit;
означает, что переменная Edit1 принадлежит типу TEdit. Класс TEdit яв-
ляется стандартным типом (а точнее, классом), которое определяет все свойства
текстового поля.
Далее по тексту идут объявления переменных, описывающих поля меток и
командных кнопок. Поля меток принадлежат классу TLabel, а командные кноп-
ки принадлежат классу TButton. При изменении свойства Name формы также
меняется имя класса, которая описывает форму.
Наверно вы заметили, имена классов начинаются с префикса “T”: TEdit,
TLabel, TButton. В системе Delphi принято соглашение, обозначать классов с
идентификаторами, которые начинаются с префиксом “T”.
Примечание. Изменения свойства Name элементов управления через Ин-
спектор объектов приводит к изменению соответствующего кода в окне кода.
Однако изменение имен переменных в окне кода не приводит к изменению свойства Name элементов управления. Поэтому неопытный программист не должен ввести изменения в ту часть кода программы, которая отвечает за описание элементов управления.
События и обработчики событий
Теперь рассмотрим код, который программист должен ввести для реализа-
ции задач, решаемых программой. Структура программы для ОС Windows
представляет собой набор подпрограмм, каждая из которых ответственна за обработку конкретного события. Программист сам решает, какие события в программе требуется обрабатывать. В нашем примере необходимо реагировать
только на щелчок на кнопках Сложение, Вычитание, Умножение и Деление.
Каждый элемент управления содержит множество различных событий.
Полный список поддерживаемых событий представлен во вкладке События
18

Основы программирования в Delphi
Инспектора объектов. Для создания заготовки процедуры обработки события
следует выполнить двойной щелчок на правом поле списка событий. При этом
система Delphi в окне кода определяет заголовок процедуры обработки событий и пустое тело процедуры.
Например, заголовок процедуры обработки (далее обработчик) события
Щелчок на командной кнопке Cложение имеет вид:
procedure TForm1.Button1Click(Sender: TObject);
begin
...
end;
Примечание. Имеется более простой способ создания заготовки обра-
ботчика события нажатие на кнопке. Для этого следует выполнить двойной
щелчок на командной кнопке. При этом система Delphi 7 автоматически сгенерирует нужный программный код и переключится в окно редактора кода.
Заголовки процедур ButtonClick и FormCreate создаются средой Delphi автоматически (если набрать их вручную, то программа работать не будеть). При
запуске программы на выполнение все функции обработки событий, у которых
между begin и еnd не был написан текст удаляются автоматически по соот-
ветствующему запросу среды Delphi. Поэтому не надо вручную удалять ошибочно созданные обработчики.
Как видно из текста программы, название процедуры имеет составное имя
следующей структуры:
Тип_Формы. Имя_Командной_КнопкиClick
Эта процедура имеет один параметр: параметр Sender, как объект класса
TObject. Класс TObject является базовым классом (первым родителем) для всех
элементов управления. Этот класс имеет свойства (методы) для создания и уда-
ления объекта класса, вывода объекта класса в окно формы и т. д.
Параметр Sender определяет, какой объект программы вызывает данную
подпрограмму. Хотя он будет вызываться автоматически при щелчке на кнопке
Сложить, его можно вызывать и непосредственно из текста программы, как
обычную подпрограмму. Например, чтобы проверить, является ли вызов данно-
го обработчика реакцией на нажатие кнопки cmdSum, можно использовать следующий условный оператор:
if Sender = cmdSum then …
19

Основы программирования в Delphi
Обработчик должен функционировать следующим образом. Строки, вве-
денные в поля Edit1 и Edit2, надо преобразовать в числа с помощью стандартной функции StrToInt( ), затем сложить их, результат преобразовать обратно в
строку (функция IntToStr( )) и записать его в свойство Text текстового поля
Edit3. Доступ к свойству Text и любым другим свойствам происходит путем обращения к нему с помощью составного имени:
Имя_переменной. Название_свойства
Например, свойству Text текстового поля Edit1 следует обращаться так:
Edit1.Text
При наборе этой фразы после ввода символа “.” (точка) система Delphi выводит всплывающее меню, в котором отражены все свойства объекта txt_a. Вы-
бор из этого меню нужного свойства является правильным способом программирования, так как при этом не допускается синтаксические ошибки при вводе
названия свойства. Более того, если при вводе символа “.” системой не выводится это меню, то в имени переменной допущена синтаксическая ошибка или
система эту переменную «не видит» (возможна она не объявлена или еще чтонибудь).
С учетом сказанного, ниже приведем код обработчика нажатия на кнопке
Сложение.
procedure TForm1.Button1Click(Sender: TObject);
var x, y, Summa:integer;
begin
x:= StrToInt(Edit1.Text);
y:=StrToInt(Edit2.Text);
Summa:= x + y;
Edit3.Text:= IntToStr(Sum);
end;
Здесь переменные x, y и Summa были введены лишь для сокращения вы-
ражений. В этих выражениях хранятся промежуточные значения.
Нажатие кнопки Вычитание приводит к вычислению частного чисел,
введенных в текстовые поля Edit1 и Edit2 соответственно. С учетом сказанного,
код этой процедуры должен иметь вид:
procedure TForm1.Button1Click(Sender: TObject);
var x, y, Summa:integer;
begin
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
