Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования в Delphi. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Основы программирования в 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]