3478 ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА Delphi

Основы создания приложений в Delphi

 

1. Краткий обзор построения, возможностей
и назначения Delphi. Работа со средой программирования

 

Delphi - это среда разработки, используемая для создания и поддержки приложений, предназначенных как для отдельных персональных компьютеров, так и для серверов. Delphi, как и разработанные с ее помощью приложения, могут функционировать под практически любой 32-разрядной операционной системой типа Windows 95, 98, 2000, NT.

О Delphi говорят как о среде быстрого создания приложений. Это технология визуального программирования. Пользователь оформляет будущую программу и видит результаты своей работы еще до запуска самой программы. В принципе, сам процесс написания приложения разделяется на две части.

1. Программист располагает на окнах своей программы необходимые элементы, позиционирует, устанавливает нужные размеры, меняет свойства.

2. Написание программного кода, описание свойств элементов, доступных только во время работы приложения, описание реакций на событие появления окна, нажатия на кнопку и др.

Для задания каких-либо свойств элементу разрабатываемого приложения достаточно изменить это свойство в инспекторе объектов (так называемом мониторе свойств выбранного элемента). Это изменение автоматически дополнит или модифицирует программный код. Создавая или модифицируя свой программный продукт таким образом, пользователь не знает или не обращает внимания на некоторые свойства элемента программы, а, используя только необходимые, пишет полностью готовый рабочий продукт.

Дополнительное удобство в работе в среде Delphi - это мощная справочная система. Контекстно-зависимая от текущего выбранного элемента или строки программы, система позволяет получить подробнейшую справку.

Delphi обладает широкими возможностями по работе с базами данных. При работе в среде программирования посредством так называемого BDE (Borland Database Engine) можно получать прямой доступ к таким стандартным форматам данных, как dBASE, Paradox, FoxPro, Access, ASCII-таблицам. Набор драйверов Borland SQL Links обеспечивает все необходимые соединения с SQL-серверами.

После запуска значка с надписью DelphiN, где N – номер версии, запускается сама оболочка создания приложений (рис.1), называемая интегрированной средой разработки IDE (Integrated Development Environment). Именно эта среда и включает в себя множество функций для создания приложения.

 

 

Рис. 1. Меню и палитра компонентов интегрированной среды
разработки приложений Delphi

 

Появившимся на экране окнам можно дать следующую предварительную характеристику.

Главное окно (рис.1). Оно располагается в верхней части экрана и содержит меню, панель инструментов и палитру компонентов. Панель инструментов представляет собой набор кнопок для быстрого доступа к необходимой функции меню. На палитре компонентов, представляющей собой множественные тематические страницы, располагаются визуальные и невизуальные компоненты будущей программы (невизуальные компоненты видны только при проектировании приложения). Главное окно остается открытым все время работы IDE. При его закрытии, закрывается Delphi и все открытые в нем окна.

 

 

 

Рис. 2. Окно инспектора объектов

 

Инспектор объектов (рис. 2). Окно Object Inspector содержит две страницы. На первой, Properties, постоянно отображаются все доступные свойства выбранного компонента. В левой колонке содержится список, в правой – текущие значения по умолчанию. На второй странице, Events, – возможные обработчики событий для выбранного компонента. В левой колонке – названия, в правой – соответствующие свойства или процедуры. На рис. 2 можно видеть Object Inspector с установленными свойствами Form1.

Поясним, что является свойством и реакцией на события.

Каждый объект в Delphi, в том числе окно разрабатываемого приложения, имеют определенные свойства, например цвет, размер, отображаемый текст и т.п. Эти свойства можно менять еще до запуска проектируемой программы на выполнение. В зависимости от изменяемого свойства результат можно просматривать уже сразу.

Реакции на события - это результат произошедшего системного события, например щелчок мыши, нажатие на кнопку, открытие окна и т.п. Реакцию на событие назначают программно, указывая список действий, которые необходимо произвести. Например, если пользователь выполняет клик по кнопке, производится копирование файла.

 

 

 

Рис. 3. Окно редактирования текста программы

 

Окно редактора кода (рис. 3). Оно имеет заголовок на момент первого запуска Unit1. В редакторе кода могут быть открыты сразу несколько файлов. Каждый открытый файл размещается на отдельной странице, а его название отображается на вкладке в верхней части.

Если в программе три окна, то они будут взаимодействовать в процессе работы с тремя так называемыми модулями (Unit). Все эти модули и отображаются в редакторе.

В окне кода пишется непосредственно текстовая часть программы.

Текстовая часть разбивается на несколько частей, называемых процедурами и функциями, которые работают отдельно одна от другой. Возможно и перенаправление выполнения программы из одного места в другое.

 

 

 

Рис. 4. Окно проектировщика форм

 

Проектировщик форм (рис. 4). Как известно, каждое Windows-приложение выполняется в собственном окне. Delphi при запуске автоматически предлагает пользователю новый проект, открывая пустое (незаполненное) окно под названием Form1 и назначает его главным окном. Это то самое окно, которое будет содержать программа. Перенося на него элементы из палитры компонентов, программист производит его предварительное оформление. Главное окно в проекте может быть только одно. Все другие создаваемые окна будут дочерними. При закрытии главного окна стандартной кнопкой закрытия или программно закрываются также и все дочерние окна. Максимально возможное количество открытых проектировщиков форм – количество окон в проекте.

Запустить проект на выполнение можно в любом окне IDE нажатием на кнопку F9 или, выбрав соответствующий пункт "Run" в меню "Run", или выбором одноцветной кнопки на панели инструментов. После этого происходит процесс компиляции, в результате которого создается EXE файл. Далее этот файл, в случае успешного создания, запускается на выполнение. Во время выполнения из множества окон Delphi остается только главное окно и окно редактора кода.

Для сохранения проекта выбирается пункт Save All, находящийся в меню File. Следует учитывать, что для каждой формы программы Delphi создает свой модуль (Unit). Поэтому имеет смысл сохранять каждый проект в отдельный каталог. После сохранения текстовых файлов будет предложено задать название, под которым сохранится весь проект. Как будет называться проект, под таким же именем и будут создаваться исполняемые EXE файлы. Названия файлов должны состоять из одного слова или слов, написанных английскими буквами, цифры допустимы только начиная со второго символа, пробелы – недопустимы.

 

2. Работа в среде программирования

2.1. Пункты главного меню Delphi для работы с проектом и редактирования текста

Пункт меню “File”

Для сохранения проекта выбирается пункт главного меню “File” (с помощью мышки или по клавише Alt+F).

Как можно видеть, пункт содержит шесть секций, разбиваемых по их функциональному назначению.

  • Первая секция дает возможность управления проектом в целом.
  • Вторая секция позволяет открывать с диска файлы проекта.
  • Третья позволяет сохранять открытые файлы на диске. Здесь можно закрыть активный файл в редакторе кода или закрыть весь проект.
  • Четвертая позволяет подключать в текущий модуль другие в открытом проекте.
  • Пятая управляет печатью.
  • Шестая секция - выход из Delphi.

Каждая строка пункта меню “File”, как и другого пункта, объяснена в справке: “New Application” начинает новый проект, “Open Project” открывает существующий проект и т.д. Вложенный список “Reopen” позволяет открыть файл или проект, который недавно открывался. При создании нового модуля Delphi дает ему имя по умолчанию. Можно изменить это имя на что-нибудь более предпочтительное, чтобы название подходило к функциональным принадлежностям данного модуля (например, MAIN.PAS), с помощью пункта для первого сохранения “Save“ или для последующего изменения названия “Save As…“. “Save File” сохраняет только редактируемый файл, но не весь проект. Для сохранения всех файлов проекта необходимо воспользоваться "Save All".  “Close” закрывает файл из окна редактора. Если файл был изменен, произойдет запрос сохранений перед закрытием. “Close All” закрывает все открытые файлы проекта.

 

Пункт меню “Edit”

“Edit” содержит команды “Undo” и “Redo”, которые могут быть полезны при работе в редакторе для устранения последствий при неправильных действиях, например, если случайно удален нужный фрагмент текста или удален компонент из проектировщика форм.

Команды “Cut”, “Copy”, “Paste” и “Delete” - как во всех остальных приложениях Windows, но их можно применять не только к тексту, но и к визуальным компонентам. Например, если необходимо размножить необходимый компонент на форме. Третья секция предназначена для работы с редактором формы. “Bring to Front” - установить выбранный компонент на уровень выше; “Send to Back” - компонент на уровень ниже; “Align...” - выравнивание компонентов, совместное позиционирование; “Size” - точные размеры компонента; “Tab Order” - порядок перехода по элементам формы с помощью кнопки Tab.

2.2. Проект Delphi

 

Перед непосредственным написанием программ необходимо усвоить правила работы над разрабатываемым проектом.

Любой проект имеет, по крайней мере, шесть файлов, связанных с ним. Три из них относятся к управлению проектом из среды программирования и напрямую программистами, как правило, не меняются. Ниже приведен перечень этих файлов.

  • Главный файл проекта изначально называется PROJECT1.DPR. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As…. При задании имени следует придерживаться правил задания имен в Object Pascal. Имя не должно содержать пробелов (используйте в таком случае знак подчеркивания), должно начинаться с буквы (цифры допустимы, но со второй позиции), не должно содержать других символов, кроме букв и цифр. Под каким именем сохраняется проект, под таким именем и будет создаваться исполняемый EXE файл.
  • Модуль программы, который автоматически появляется в начале работы Unit1. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню File команду Save As…. Сохраняется активный модуль в редакторе кода.
  • Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде формы (окна разрабатываемого приложения). При переименовании названия модуля автоматически меняет свое название.
  • Файл PROJECT1.RES изначально содержит иконку для проекта. Создается автоматически. Имеет одноименное название с названием проекта.
  • Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства. Состояние окон во время разработки приложения.
  • Исполняемый EXE файл, который создается в процессе компиляции проекта.

Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES и DSK. После компиляции программы получаются файлы с расширениями:

DCU - скомпилированные модули PAS, для последующей быстрой компиляции некоторые файлы не перезаписываются;

EXE - исполняемый файл;

~PA, ~DP - backup файлы редактора. Автоматически создаются и содержат информацию перед последним сохранением.

Сохранение проекта

Как известно, чтобы впоследствии открывать свой проект для дальнейшего корректирования и управления, необходимо его сохранить на диске.

Первый шаг - создать поддиректорию для программы. Лучше всего создать директорию, где будут храниться программы - создать поддиректорию для данной конкретной программы.

После создания поддиректории для хранения программы желательно выбрать пункт меню “File” “Save All”. Сохраняются два файла. Первый - модуль (unit), над которым производилась работа, второй - главный файл проекта. Здесь и далее сколько окон (форм) в проекте, столько и модулей.

Открытие проекта

Для открытия проекта необходимо выбрать пункт меню файл "Open Project" и выбрать название интересующего проекта DPR. При этом открывается как сам проект, так и становятся доступными все привязанные к нему файлы.

Если необходимо открыть для редактирования отдельный модуль или модуль формы, выбирается пункт "Open", а затем файл с расширением PAS. В этом режиме будут доступны для редактирования только форма и модуль.

 

3. Реакция на события

Допустим, на Delphi написана, откомпилирована и запущена на выполнение некая программа. При этом программа, выполняемая под управлением операционной системы Windows, порождает достаточно большое количество событий, передаваемых этому приложению. Например, до непосредственного создания любого окна в памяти Windows посылает сообщения приложению: "Окно сейчас будет создано", "Окно сейчас будет активизировано", "Окно сейчас отобразится" и т.д. Аналогичные сообщения возникают, например, при нажатии на любую кнопку. При этом Windows посылает сообщение приложению: "По такой-то кнопке щелкнули". И если программист использовал это сообщение и написал реакцию на него, то программа выполнит ее.

Как уже было отмечено, проектируемая форма или окно, которое будет видеть пользователь при запуске программы на выполнение, по умолчанию называется Form1. Изменить название формы можно в инспекторе объектов (Object Inspector), изменив значение свойства Caption на страничке свойств Properties.

Для помещения на проектируемую форму, например стандартной кнопки, на листообразной палитре компонентов одинарным щелчком мышки выбирается компонент под названием Button. После этого нужно щелкнуть по форме, где необходимо эту кнопку оставить. Если повторить операцию несколько раз, на форме окажется несколько кнопок - Button1, Button2, Button3 и т.д. Кнопки можно передвигать по форме при нажатой левой клавише мыши. Также можно изменить название и другие свойства кнопок, воспользовавшись инспектором объектов. Для этого необходимо щелкнуть один раз на одной из кнопок. Она оказывается выделенной. После этого в инспекторе объектов отображаются все доступные свойства для этой кнопки. Аналогично названию формы название кнопки также меняется сменой свойства Caption.

Таким образом, располагая на форме необходимые интерфейсные элементы и задавая их свойства, оформляется внешний вид программы.

Для того чтобы задать реакцию на возникающие события, необходимо использовать редактор кода Delphi.

Для создания программного кода Delphi-приложения используется язык программирования Object Pascal. Язык во многом напоминает стандартный Pascal, однако расширен дополнительными синтаксическими конструкциями для работы с классами и объектами, обработки исключительных ситуаций и т.д.

Написание кода в Delphi – процесс интерактивный. Для облегчения труда программиста редактор кода Delphi предоставляет такие возможности, как дополнение кода, шаблоны кода, контекстный список параметров и т.д.

Рассмотрим процесс создания обработчика события, написав код реакции на нажатие кнопки Button1. Пусть действие, выполняемое при нажатии на кнопку, будет закрытие окна. После двойного щелчка по этой кнопке Delphi автоматически подготавливает редактор кода для минимизации ввода данных с клавиатуры, автоматически набирая заголовок процедуры реакции нажатия на кнопку:

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

Указатель (курсор) находится между словом begin и end. Именно там записывается команда программного закрытия окна аналогично действию системной кнопки в заголовке окна. Поскольку это окно единственное и главное, то будет закрыта и вся программа.

Если действие касается окна, а его имя Form1 (имя, но не текст, который оно отображает), то указывается ссылка на это окно. Имя любого интерфейсного элемента – это свойство Name. Набирается вручную Form1. Теперь для доступа к вложенным в него свойствам и процедурам необходимо поставить точку. Через несколько секунд Delphi выводит дополнение кода.

 

 

 

Рис. 5. Интерактивная подсказка Delphi со списком свойств
и методов объекта Form1

 

Появившееся на экране окно (рис. 5) содержит  подобие списка доступных констант, переменных, функций для данного объекта (Form1). Для закрытия заданной формы из появившегося списка выбирается Close. Завершение ввода из списка дополнения кода осуществляется нажатием на кнопку Enter, точка, точка с запятой, пробел, открывающаяся скобка (в зависимости от ситуации). В данном примере ставится точка с запятой.

Итак, описание реакции на нажатие кнопки "Закрыть" выглядит следующим образом:

 

Form1.Close;