Набор файлов различных форматов образующих программу на языке delphi называется

Обновлено: 07.07.2024

Дать студентам общие сведения об объектно-ориентированном языке программирования Delphi.

Изучение нового материала.

Изучение нового материала.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку», среди которых можно выделить Borland Delphi. В основе систем быстрой разработки (RAD-систем, Rapid Application Development – среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть генерации кода программы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется Object Pascal. В основе идеологии Delphi лежит технология визуального проектирования и методология объектно-ориентированного событийного программирования.

Приложения (прикладные программы) Delphi являются интерактивными сис­темами, в которых для организации взаимодействия между пользователем и про­граммой используются методы (подпрограммы), управляемые событиями.

Одна из главных задач Delphi – разработка приложений для работы с базами данных. В Delphi можно работать с различными СУБД (системами управления базами данных).

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

Основным окном разрабатываемого приложения является форма. В процессе разработки приложения при размещении объекта на форме (например, кнопки) в визуальной среде основные параметры объекта (размер, положение на экране, цвет и пр.) сразу отображаются в виде реального компонента на форме, а соот­ветствующий ему код на языке Object Pascal автоматически записывается в ис­ходный файл формы, который отображает объект в процессе выполнения программы. Затем этот исходный код компилируется в исполняемый машинный код, который выполняется быстрее, чем интерпретируемый код других визуальных сред разработки.

Не весь код программы, написанной для Delphi, находится в приложении Delphi. Небольшая его часть фактически является частью Windows. Например, коды для стандартных окон диалога и кнопок полностью получены от Windows. Delphi просто использует их, выполняя соответствующие вызовы из Windows DLL (Dynamic Linked Library).

Схематично взаимосвязь программ с Delphi и Windows представлена на рис.

Схема взаимосвязи программы приложения с Delphi и Windows

Свойства и реакция объектов на события

Свойства – это атрибуты (основные характеристики), которые описывают особенности объекта; например, отображают такие характеристики, как цвет, высота, ширина и положение объекта. На внешний вид объекта можно воздейст­вовать (изменять его) во время разработки и выполнения приложения, изменяя его свойства.

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

Приложения Windows используют методы (подпрограммы) обработки событий для управления взаимодействием между программой и пользователем и для реак­ции на действия ОС. Программный код, который пишет программист в Delphi, будет обеспечивать реакцию на события. Подпрограмма, которая реагирует на событие, называется обработчиком события (Events). Delphi работает с собы­тиями путем вызова определенных процедур – обработчиков (Handler) событий. Если процедура не связана с данным событием, то оно игнорируется и выполняет­ся стандартная реакция системы или не производится никакого действия.

Основные понятия и принципы программирования

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

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

Алгоритмы и программы

Перед тем как начать составлять программу, надо предварительно придумать и продумать алгоритм ее работы, представляющий собой строгое, формальное, не допускающее неоднозначностей и двусмысленностей описание процесса решения задачи. После того как алгоритм готов, на его основе и составляется (кодируется) программа.

Исходный текст программы автоматически переводится в набор инструкций про­цессора с помощью специальной программы, называемой компилятором. В среде Delphi для этого достаточно выполнить всего одну команду или нажать одну кла­вишу. Процесс компиляции — перевода (трансляции) исходного текста в конкретные команды процессора выполняется очень быстро. За секунду программа-компилятор анализирует и транслирует тысячи строк исходного кода.

Среда Delphi 7 и ее составляющие

Среда Delphi 7 представляет собой интегрированную оболочку разработчика, в кото­рую входит набор специализированных программ, ответственных за разные этапы создания готового приложения.

Основные окна системы Delphi

Вид экрана после запуска Delphi несколько необычен. Вместо од­ного окна на экране появляются пять:

главное окно — Delphi ;

окно стартовой формы — Form 1;

окно редактора свойств объектов — Object Inspector ;

окно просмотра списка объектов — Object Tree View ;

окно редактора кода — Unit 1. pas .

Окно редактора кода почти полностью закрыто окном стартовой формы.

Главное окно занимает верхнюю часть экрана. В нем расположены: строка за­головка, строка главного меню, панель инструментов и панель палитры компо­нентов. После загрузки Delphi заголовок главного окна: 'Delphi 7 - Projectl'.

Все основные команды разработки расположены в главном меню. Они позво­ляют выполнить действия над файлами проекта, модулей, форм. Меню позволяет управлять проектом приложения, окнами интерфейса Delphi и использо­вать систему оперативного справочника (Help).

Панель инструментов расположена в левой части главного окна и служит для более удобного и быстрого обращения к наиболее важным командам главного меню. Набор команд панели инструментов можно настроить с помощью коман­ды Customize из всплывающего (контекстного) меню этой панели. На панели инструментов размещены 4 подпанели с кнопками с ярлычками посказок: New Items (новые данные), Open file (открыть файл), Sаvе(сохранить), Save All (сохранить все), Open Project (открыть проект), Add file to project (добавить файл к проекту), Remove file from project (исключить файл из проекта), Help contents (содержание помощи), View Unit (просмотр модулей), View Form (просмотр форм), Toggle Form\Unit (переход от формы к модулю и обратно), New Form (создать новую форму), Run (F9) (запустить приложение), Pause (приостановить выполнение приложения), Trace into (F7) (построчно выполнить), Step over (F8) (построчно выполнить, в том числе подпрограмму за одно нажатие F8).

Панель палитры компонентов расположена в правой части главного окна сре­ды разработчика. Она открывает доступ к VCL (Visual Component Library - биб­лиотеке визуальных компонентов) и содержит кнопки с пиктограммами компо­нентов VCL. С помощью палитры компонентов можно выбрать и включить в приложение всевозможные интерфейсные элементы управления: кнопки, меню, списки, панели и пр. Палитра компонентов состоит из ряда страниц с различными группами компонентов. В Delphi можно изменять содержимое страниц Палитры компонентов и добавлять в нее пиктограммы собственных компонентов.

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

Окно Инспектора объектов - это двухстраничное окно редактора свойств объектов предназначено для редактирования значений свойств объектов. Оно отображает свой­ства или события одного или нескольких выбранных объектов или форм. Окно Инспектора объектов содержит 2 страницы: страницу свойств (Properties) и страницу событий (Events). В верхней части Инспектора объектов страницы помечены закладками (tabs). С их помощью можно переходить со страницы на страницу в процессе разработки приложения. В верхней части Инспектора объ­ектов расположен выпадающий список с именами компонентов активной фор­мы: окно с кнопкой справа. При нажатии на кнопку появляется выпадающий список, из которого можно выбрать и тем самым активизировать требуемый объект формы.

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

В скомпилированном приложении сетка не появляется. Окно формы содержит органы взаимодействия пользователя с задачей в процессе выполнения приложения. Для новых форм заголовок этого окна по умолча­нию = 'Form 1'. В процессе разработки приложения его можно изменить. Простые программы имеют одну форму, более сложные могут иметь ряд форм.

Когда компонент из палитры компонентов помещен в окно разрабатываемой формы, его имя попадает в список Инспектора объектов, который отображает информацию о свойствах компонента, выбранного в окне формы. Все данные о компоненте представлены на двух страницах Инспектора объектов. Причем в нем отображается информация о том объекте, который выбран в окне активной формы или из списка объектов Инспектора. Инспектор объектов связан с редак­тором кода. Каждый компонент является объектом и имеет свои свойства и ме­тоды. Свойства отображают состояние компонента (его место на форме, размеры и пр.). Методы реализуют реакцию компонента на различные события (нажа­тие кнопки мыши на кнопке формы, перемещение мыши по форме, отпускание кнопки мыши и пр.). Тексты методов для реализации реакции компонента со­держит Редактор кода.

В состав проекта приложения, разрабатываемого в Delphi, обязательно входят файлы со следующими расширениями:

.dpr – главный файл проекта. Содержит исходный код инициализации приложения и создания форм.

.pas – файлы программных модулей, содержащих исходный код на языке Object Pascal. Для каждой формы, входящей в состав проекта, создается отдельный программный модуль. В исходном тексте такого модуля содержится объявление класса формы. При размещении на форме компонентов конструктор форм Delphi автоматически вносит необходимые изменения в объявление класса этой формы. То же самое происходит и при создании обработчиков событий. Таким образом, Delphi выполняет объем "черновой работы" по модификации исходного кода класса формы, позволяя разработчику сосредоточится только на создании программного кода, определяющего функциональность формы.

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

.res – файл ресурсов проекта. Содержит пиктограмму, которая затем сохраняется в выполняемом файле приложения, и другие ресурсы.

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

Главный файл проекта (. dpr ).

Содержимое главного файла проекта представлено в следующем листинге.

Unit1 in 'Unit1.pas' ;

Слово program сообщает компилятору о том, что данная программа предназначена для создания выполняемого файла. После него указывается имя проекта (в данном случае Project1).

Перечисляются программные модули Object Pascal, которые система Delphi должна скомпоновать с данной программой при создании выполняемого файла. Модуль Forms, с которого начинается перечень модулей проекта, - это одна из составных частей библиотеки визуальных компонентов. Назначение этого модуля состоит в определении характеристик форм в приложениях, разрабатываемых в Delphi. Остальным модулям соответствуют формы, созданные для конкретного проекта. Здесь указывается имя модуля (Unit1), имя файла с исходным кодом этого модуля (Unit1.pas), а также имя формы, хранящейся в данном модуле (Form1). Имени формы соответствует значение свойства Name каждого объекта класса TForm в том виде, в котором оно отображается в инспекторе объектов Delphi.

Директива $R сообщает компилятору, что проект нужно включить ресурс Windows, указанный в директиве. Символ звездочки, указанный в качестве имени файла, означает, что имя файла ресурса совпадает с именем файла проекта. Файл ресурсов (.res) создается автоматически при компиляции проекта.

Объект Application – это экземпляр класса TApplication. Он создается автоматически и предназначен для управления приложением в целом. Инициализация приложения начинается с вызова метода Application.Initialize. После него последовательно для каждой формы вызывается метод Application.CreateForm. этот метод создает формы, то есть загружает их в оперативную память. Если в проекте используется несколько форм, то непосредственно при инициализации приложения обязательно необходимо создавать только ту форму, которая является главной. Остальные формы можно создавать динамически, то есть в процессе работы приложения. Такой подход позволяет более рационально использовать системные ресурсы и ускоряет запуск приложений.

Файлы программных модулей (. pas )

Рассмотрим структуру файлов программных модулей на примере модуля Unit1, представленного в листинге.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

В среде Delphi программист работает с проектом – набором файлов, из которых Delphi создает приложение. Один проект соответствует одному приложению. Ряд файлов проекта Delphi формирует и модифицирует автоматически. Программист может добавлять в проект и собственные файлы (Pascal-модули, графические файлы, DLL–библиотеки, библиотеки компонент, ресурсы и т.д.).

В состав проекта обязательно входят следующие элементы [3, 4, 5]:

· основной файл проекта, имеющий расширение .DPR (Delphi PRoject). В проекте может существовать только один файл с таким расширением. Это небольшой текстовый файл на языке Object Pascal, который содержит ссылки на все формы проекта и инициализирует приложение;

· файлы всех форм проекта. Для каждой формы формируется пара одноименных файлов – файл Pascal-модуля с обычным расширением .PAS и файл ресурсов формы с расширением .DFM (Delphi ForM). Любая форма проекта всегда должна иметь свою пару файлов модуль-ресурс. Обратное не обязательно, т.е. проект может включать в себя модули и файлы ресурсов не относящиеся ни к одной из форм приложения;

· файл ресурсов приложения (*.RES). В нем содержатся ресурсы приложения, не вошедшие в формы;

файл опций проекта (*.DOF – Delphi Options File). В этом файле сохраняются значения директив и опций компилятора, настроек компоновщика, названия рабочих каталогов, параметры командной строки запуска приложения.

Пример программы

Запускаем Delphi. Если загрузка прошла успешно, то на экране монитора мы увидим то, что представлено на рис.1. В строке заголовка главного окна Delphi присутствует надпись Delphi 3 – Project1 . Это название нашего проекта и программы. В строке заголовка окна формы приложения написано Form1 . Если нажать клавишу F12 или щелкнуть мышью на кнопку Toggle
Form/Unit (панель быстрого доступа) или выбрать пункт меню View/Toggle Form/Unit, то окно редактора кода переместится на передний план и мы увидим содержимое страницы Unit1 редактора, в которой представлен Pascal-код модуля Unit1 . Добавим в окно редактора кода еще одну страницу, в которой расположится код основного программы проекта. Для этого выберем пункт меню View/Project Source . Ниже представлено содержимое двух страниц редактора кода: Pascal-код главной программы и Pascal-код модуля главной формы проекта, соответственно.

Сохраним файлы проекта в созданном директории PO_EVM. Для этого нажмем кнопку Save all на панели быстрого доступа или выберем пункт меню File/Save Project As… . В появившемся стандартном Windows-окне сохранения файлов выберем папку PO_EVM и последовательно сохраним Pascal-код модуля формы и Pascal-код программы в файлах с именами IDE_Un1.pas и IDE_Pr.dpr соответственно.

Windows, Messages, SysUtils,

lasses, Graphics, Controls,

Если сейчас посмотреть содержимое папки PO_EVM, то в ней будут находиться следующие файлы проекта: IDE_Pr.dof – файл опций проекта; IDE_Pr.dpr – основной файл проекта; IDE_Pr.res – файл ресурсов проекта; IDE_Un1.pas – файл Pascal-кода модуля формы; IDE_Un1.dfm – файл ресурсов формы.

Желательно изменить некоторые стандартные настройки среды, в частности для того, чтобы на экране отображался процесс компиляции и компоновки программы, а также, чтобы перед каждым запуском программы на исполнение автоматически сохранялись все модифицированные файлы проекта. Сделать это можно в диалоговом окне Environment Options… , которое можно вызвать из меню Tools/ Environment Options… . На страничке Preferences в разделе Desktop contens установить переключатель в положение Desktop only, в разделе Autosave options установить выключатели в пунктах Editor files и Desktop, а в разделе Compiling and Running установить выключатель Show compiler progress .

Простейшая программа в Delphi уже готова к исполнению. Нажав кнопку Run на панели быстрого доступа или клавишу F9, можно наблюдать процессы компиляции и компоновки программы, после которых начнет исполняться наша программа. Визуально программа представлена на экране пустым окном со стандартной Windows-строкой заголовка, содержащей пиктограмму приложения, наименование формы и три кнопки управления окном. Выход из программы и возврат в среду Delphi осуществляется стандартным для Windows способом – комбинацией клавиш Alt-F4 или нажатием на кнопку закрытия приложения. Если сейчас просмотреть содержимое папки файлов проекта PO_EVM, то можно заметить, что в ней появились еще два файла: IDE_Un1.dcu и IDE_Pr.exe – откомпилированный файл модуля формы и загрузочный (исполняемый) файл приложения. Файл IDE_Pr.exe можно запускать на исполнение автономно, т.е. вне среды Delphi. После выхода из среды Delphi, в папке образуется еще один файл IDE_Pr.dsk – файл с индивидуальными пользовательскими настройками среды.

На форме расположены три строки ввода/вывода (компоненты типа TEdit) для ввода двух операндов и вывода результата; пять кнопок (четыре компоненты типа TButton и одна – TBitBtn) – сброс, указание типа и результата операции (C, +, – , =), выхода из программы (Close); три надписи для обозначения операндов и результата (компоненты типа TLabel); разделительный интерфейсный элемент для выделения поля вывода результат счета (компонент TBevel).

В исходном состоянии, после запуска Delphi и сохранении двух файлов проекта с указанными именами, мы имеем пустую форму. Далее порядок построения интерфейсной части приложения был следующим (результаты ваших действий можно сверять с расположением компонентов на рис. 7):

1. Свойство формы Caption в инспекторе объектов изменяем со значения Form1 на строковое значение Калькулятор +/- . Изменение значения названия формы сразу заметно в строке заголовка формы;

2. На странице Standard палитры компонентов щелкаем левой кнопкой мыши на изображении компонента Label, затем перемещаем указатель мыши в район левого верхнего угла формы и щелкаем левой кнопкой там. В этом месте на форме появится изображение компонента Label с надписью Label1. Изображение компонента выделяется по периметру шестью черными квадратиками – маркерами изменения размеров (размерные маркеры). Выделение маркерами означает, что данный компонент сейчас является активным. С помощью мыши стандартными Windows-приемами можно изменять размеры компонента, перемещать его по форме. Для активизации другого компонента формы необходимо просто щелкнуть на нем левой кнопкой мыши. Содержимое закладок инспектора объектов всегда соответствует активному компоненту, при активизации другого компонента, состав полей инспектора объектов автоматически меняется. Изменим свойство Caption компонента Label со значения Label1 на значение 1-ый операнд . Свойству Name этого компонента придадим значение lb_1 .

3. Действуя аналогично, расположим второй компонент-метку немного ниже первой, задав, соответственно, свойствам Caption и Name значения 2-ой операнд и lb_2 .

4. На той же странице Standard палитры компонентов выберем компонент Edit (строка редактирования) и поместим его на форме правее первой метки. Свойству Name присвоим значение ed_1 , а свойство Text сделаем пустым.

5. Действуя аналогично, расположим вторую строку редактирования правее второй метки, задав, соответственно, свойствам Text и Name значения пустой строки и ed_2 .

8. Поместим еще одну метку для изображения текущей арифметической операции: (?, +, –) — операция не определена, операция сложения, операция вычитания. Расположим эту метку между двумя первыми метками, ближе к левым границам компонентов для ввода операндов (см. рис.7). Свойству Name присвоим значение lb_oper, а свойству Caption – значение ? . Установим также подсвойство Size в свойстве Font для этой метки, равным 14;

11. Пятая кнопка – кнопка завершения программы – выбрана со страницы Additional. Это первый по порядку компонент на этой странице – кнопка типа BitBtn (командная кнопка с надписью и пиктограммой). Расположив кнопку на показано на рис.7, выберем из списка значений свойства Kind значение bkClose . Этим выбором полностью определяются визуальные атрибуты и функциональное назначение кнопки.

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

На этом заканчивается первый этап создания приложения – построения интерфейса. Необходимо отметить, что на любом этапе построения интерфейса можно в любой момент запустить программу на исполнение. В процессе выполнения вышеописанных шагов мы не написали ни одной строчки, ни одного Pascal-оператора. Все записи в тексте модуля формы приложения Delphi делает сама. К этому моменту в интерфейсной части модуля формы произошли изменения – добавились описания компонентов, помещенных нами в форму и стандартные модули Delphi – Buttons, StdCtrls, ExtCtrls.

Проект – это разрабатываемое на языке программирования приложение.

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

Проект Delphi представляет собой набор программных единиц – модулей, которые хранятся в отдельных файлах.

Примечание. В Delphi существуют файл проекта и файлы проекта. Это разные вещи. Файл проекта – это главный файл проекта (головная программа), имеющий расширение .Dpr, файлы проекта – это набор всех файлов приложения.

Файл с расширением .Dpr (главный файл проекта) содержит основную информацию о проекте. По умолчанию этот файл называется Project1.dpr.

Файл с расширением .Pas – это файл программного модуля. В нем хранится текст программы на языке Object Pascal. Для каждой формы, входящей в состав проекта, создается отдельный программный модуль. По умолчанию эти файлы называются Unit1.pas,. Unit2.pas и т.д.

Файл с расширением .Dfm содержит информацию о внешнем виде формы. Этих файлов столько, сколько форм в проекте. Информация в них закодирована.

Файл с расширением .Res – это файл ресурсов проекта, в котором хранится информация о картинках, курсорах, иконках и т.п.

Файл с расширением .Exe– исполняемый файл приложения.

Файлы с расширениями .

Pa – файлы со старыми версиями приложения.

У файлов с расширениями .Pas, .Dfm, .

Pa всегда одинаковое имя (по умолчанию Unit1).

У файлов с расширениями .Dpr, .Exe, .Res – также одинаковое имя (по умолчанию Project1).

· При сохранении нового проекта приложения рекомендуется создавать отдельную папку.

· Копирование файлов проекта на дискету или в другую папку выполняется только с помощью файлового менеджера Windows (например, проводника). В среде Delphi это делать не следует.

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

Все объекты компонентов размещаются в объектах – формах. Форма обеспечивает создание графического интерфейса разрабатываемого приложения и представляет собой окно, на котором размещаются необходимые компоненты. Для каждой формы, проектируемой в приложении, Delphi автоматически создает отдельный модуль, в который пользователь может ввести собственный код, создавая обработчики различных событий. Именно в модулях и осуществляется программирование задачи.

Существует определенный формат программного кода, задающий установку свойства и использование метода:

где Объект - имя настраиваемого объекта;

Свойство - характеристика, которую нужно изменить;

Значение - новая установка свойства;

Метод - команда, которая используется для изменения объекта;

Параметр - аргумент, используемый методом.

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

2.3. Структура главного файла проекта *.dpr

Код главного файла проекта (головной программы) создается Delphi автоматически и, как правило, не требует модификации. Пример структуры такой головной программы приведен ниже.

2.4. Структура модуля приложения Delphi *.pas




Текст программы, описывающей форму, хранится в модуле с расширением .Pas, его название должно совпадать с именем файла, по умолчанию Unit1.pas. Модуль состоит из разделов: интерфейса и реализации.

Структура модуля приложения Delphi:

Unit Unitl; Название модуля (это название используется в предложении Uses при подключении модуля к приложению)
Interface … Раздел интерфейса
Implementation … Раздел реализации (исполняемая часть)

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

Здесь могут размещаться списки подключаемых модулей, объявления типов, констант, переменных, заголовки функций и процедур, к которым будет доступ из других модулей, в том числе и автоматически созданные Delphi объявления класса Form1. Иными словами, в этом разделе описывается область видимости переменных и подпрограмм модуля.

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

Начинается раздел директивой , указывающей файл, описывающий каждый компонент формы, включая значения всех свойств.

Замечание. Просмотреть файл *.dfm можно с помощью команды
View as Text контекстного меню в конструкторе форм.

Далее в разделе реализации могут помещаться предложения: Uses, объявления типов, констант, переменных, к которым не будет доступа из других модулей. Здесь же располагаются все тексты процедур и функций, объявленных в разделе Interface. Заголовки процедур и функций могут полностью совпадать с заголовками из интерфейсной части или могут отличаться от них полным отсутствием параметров. Если в этой части набран текст функции или процедуры, не представленной в Interface, то данная функция или процедура будет локальной.

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

Итак, в общем виде, работа с файлом заключается в следующих этапах:

1. подключение к файлу – связь с внешним файлом, указание режима подключения;

2. выполнение операций записи в файл или чтения из файла;

3. завершение работы с файлом.

Подключение к файлу

Для связи программы с файлом используется специальная переменная – "Файловая переменная". Объявляется она так же как и любая переменная в Delphi. Тип это переменной может быть File для типизированных (хранящих данные определенного типа) файлов, а можно указать TextFile, что будет означать тип обычного текстового файла. Объявление переменной:

В исполняемом коде программы выполняется подключение к внешнему файлу:

Команда AssignFile, выполняет связь файловой переменной с внешним файлом. Вторым параметром указывается адрес файла. Он может быть задан относительным или абсолютным. Если указать только имя файла, то программа будет пытаться обнаружить его в той же директории, где она сама и находится. Абсолютный путь указывается от корневого диска:

Использование относительной директории дает возможность не привязываться к конкретным дискам и адресам. Например:

После того как выполнено подключение, выполняется процедура, устанавливающая режим работы с файлом. В основном это режим чтения или записи. Эти режимы назначаются процедурами Reset() ( для чтения) и rewrite() (для записи):

* Для команды Rewrite() следует учитывать, что при ее выполнении, она либо создает файл, указанный в файловой переменной, либо если он уже есть перезаписывает файл заново, удаляя старый без какого-то предупреждения.

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

Операции с файлами

Для чтения из файла, необходимо назначить режим чтения и использовать команду Readln(), которая будет вводить в строковую переменную по одной строке из файла. Затем с этой переменой можно выполнить необходимые действия.

Обычно для загрузки всех строк из файла используется оператор цикла. Для того, чтобы определить, что файл закончился используется функция EOF() (End Of File). Таким образом получается цикл, в котором последовательно в строковую переменную вводятся все строки файла и завершающийся после окончания фала:

Для записи, назначение режим записи в файл и командой Writeln() производится запись по строкам.

Закрытие файла

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

Примеры работы с текстовыми файлами в Delphi

Чтение в переменную одного значения из файла:

Загрузить все строки файла в компонент Memo:

Следует отметить, что для этой задачи проще воспользоваться командой самого компонента Memo LoadFromFile().

Записать строку в файл:

Записать в текстовый файл все строки из компонента Memo:

Как и для чтения из файла в Memo, так и здесь, имеется специальная команда:


Учебно-методическое пособие с теорией, тестом и лабораторной работой.

Содержимое разработки

Учебно-методическое пособие по теме «Файлы в Delphi».

Аглиуллина Айгуль Ильнуровна

педагог дополнительного образования

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

Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.

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

В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Она может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет.

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

Важной особенностью файлов является то, что данные, содержащиеся в файле, переносятся на внешние носители. Файловый тип – это единственный тип значений, посредством которого данные, обрабатываемые программой, могут быть получены извне, а результаты могут быть переданы во внешний мир. Это единственный тип значений, который связывает программу с внешними устройствами ЭВМ.

1. Понятие файла

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

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

В зависимости от типа элементов различают три вида файла:

файл из элементов фиксированного размера (элементами такого файла чаще всего являются записи);

файл из элементов переменного размера (нетипизированный файл) - такой файл рассматривается просто как последовательность байтов;

текстовый файл; элементами такого файла являются текстовые строки.

Для работы с файлом в программе объявляется файловая переменная. В файловой переменной запоминается имя файла, режим доступа (например, только чтение), другие атрибуты. В зависимости от вида файла файловая переменная описывается по-разному.

Для работы с файлом, состоящим из типовых элементов переменная объявляется с помощью словосочетания file of, после которого записывается тип элемента:

имя_файла:file of тип_элементов_файлов;

Объявление переменной для работы с нетипизированным файлом выполняется с помощью отдельного слова file:

Для работы с текстовым файлом переменная описывается с типом TextFile:

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

2. Компоненты, работающие с файлами

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

Для начала необходимо упомянуть компоненты Delphi, которые умеют работать с файлами. Они читают и сохраняют своё содержимое, строки типа String, в файл текстового формата. Это компоненты ListBox, ComboBox и Memo, расположенные на первой же вкладке палитры компонентов.

Каждая строка компонентов ListBox и ComboBox является объектом Items[i], а Memo - Lines[i], где i - номер строки, который отсчитывается от нуля. Добавление строк в компоненты выполняется методами Add и Insert:



Рисунок №1. Добавление строк в компоненты

begin
Memo1.Lines.Add('Первая строка');
ComboBox1.Items.Add('Первая строка');
ComboBox1.Items.Add('Вторая строка');
ListBox1.Items.Add('Первая строка');
ListBox1.Items.Add('Вторая строка');
end ;

Метод Add добавляет новую строку в конец. Метод Insert имеет дополнительный параметр, указывающий, после какой строки разместить новую строку. Доступ к строкам осуществляется так:

ComboBox1.Items[0] := 'Первая строка изменилась' ;

ListBox1.Items[1] := 'Вторая строка изменилась' ;

У компонента ComboBox дополнительно есть свойство Text, где (как и у компонента Edit) находится вводимый текст:

ComboBox1.Text := ' Вводимый текст ';

На выделенную в данный момент строку компонента ComboBox указывает свойство ItemIndex типа Integer, то есть это номер выделенной строки. Следовательно, получить саму выделенную строку компонента ComboBox можно следующей конструкцией:

S:=ComboBox1.Items[ComboBox1.ItemIndex];
или, пользуясь оператором присоединения

With ComboBox1 do

Таким способом по нажатию клавиши Enter можно заносить в этот компонент вводимую в строку информацию и удалять нажатием Escape:
выделить на Форме ComboBox и перейти в Инспектор объектов, на вкладку Events. Щёлкните дважды по обработчику OnKeyPress. Система Delphi создаст заготовку обработчика.

Для сохранения содержимого в файл необходимо выполнить команду

Впрочем, расширение можно поставить любое, не обязательно .txt, как и вообще без него обойтись. Но расширение .txt позволит легко открыть файл стандартным Блокнотом, что бывает очень удобно на этапе написания программы.
Для загрузки служит метод LoadFromFile:

3. Классическая работа с файлами

Технология работы с файлами в системе Delphi требует определённого порядка действий:

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

Начинается работа с файлом. Это могут быть запись, считывание, поиск и другие операции.

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

В Delphi реализовано несколько способов работы с файлами. Рассмотрим классический способ. Файловая переменная вводится для указания на файл. Делается это с помощью ключевого слова File :

Описанная таким образом файловая переменная считается нетипизированной, и позволяет работать с файлами с неизвестной структурой. Данные считываются и записываются побайтно блоками, размер которых указывается при открытии файла, вплоть от 1 байт.

Но чаще используются файлы, состоящие из последовательности одинаковых записей. Для описания такого файла к предыдущему описанию добавляется указание типа записи:

var F: File of тип_записи ;

В качестве типа могут использоваться базовые типы, или создаваться свои. Важно только, чтобы для типа был точно известен фиксированный размер в байтах, поэтому, например, тип String в чистом виде применяться не может, а только в виде String[N].

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

Для текстовых файлов отдельно укажем, что тип файловой переменной в TextFile, а тип обычной - String.

Для открытия файла нужно указать, где он расположен. Для этого файловая переменная должна быть ассоциирована с нужным файлом, который определяется его адресом. Адрес файла может быть абсолютным, с указанием диска и каталогов ('C:\Мои документы\Мои рисунки\FileName.ini'), или относительным, тогда он создаётся в папке с .exe файлом программы. Для задания относительного адреса достаточно указать имя файла с нужным расширением. Делается это оператором AssignFile:

AssignFile(SaveF, 'C:\Мои документы\Мои рисунки\FileName.ini');

Теперь файл должен быть открыт.

Открытие файла оператором Rewrite приведёт к воссозданию файла заново, т.е. существующий файл будет без предупреждения уничтожен, и на его месте будет создан новый пустой файл заданного типа, готовый к записи данных. Если же файла не было, то он будет создан.

Открытие файла оператором Reset откроет существующий файл к считыванию или записи данных, и его указатель будет установлен на начало файла :

Каждый из этих операторов может иметь второй необязательный параметр, имеющий смысл для нетипизированных файлов, и указывающий длину записи нетипизированного файла в байтах:

Чтение файла производится оператором Read:

Запись в файл производится оператором Write:

При этом чтение и запись производится с текущей позиции указателя, затем указатель устанавливается на следующую запись. Можно проверить, существует ли нужный файл, оператором FileExists:

then Read(SaveF, SaveV);

Принудительно установить указатель на нужную запись можно оператором Seek(SaveF, N), где N - номер нужной записи, который, как и почти всё в программировании, отсчитывается от нуля:

Seek(SaveF, 49); - установка указателя на 50-ю запись.

При последовательном чтении из файла рано или поздно будет достигнут конец файла, и при дальнейшем чтении произойдёт ошибка. Проверить, не достигнут ли конец файла, можно оператором EOF (аббревиатура End Of File), который равен true, если прочитана последняя запись и указатель находится в конце файла:

while (not EOF(SaveF)) do

Для текстовых файлов вместо Read и Write используются операторы Readln и Writeln, умеющие определять конец строки.

Оператор Truncate(SaveF) позволяет отсечь (стереть или удалить) все записи файла, начиная от текущей позиции указателя, и до конца файла.

В конце работы с файлом его необходимо закрыть. Это делается оператором CloseFile(SaveF) ;

4. Работа с текстовыми файлами

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

Приступая к работе с файлом, нужно первым делом вызвать процедуру AssignFile, чтобы файловой переменной поставить в соответствие имя файла на диске:

В результате этого действия поля файловой переменной F инициализируются начальными значениями. При этом в поле имени файла заносится строка 'MyFile.txt'.

Так как файла еще нет на диске, его нужно создать:

Теперь запишем в файл несколько строк текста. Это делается с помощью хорошо вам знакомых процедур Write и Writeln:

Writeln(F, 'Pi = ', Pi);

Writeln(F, 'Exp = ', Exp(1));

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

После работы файл должен быть закрыт:

Рассмотрим теперь, как прочитать содержимое текстового файла. После инициализации файловой переменной (AssignFile) файл открывается с помощью процедуры Reset:

Читайте также: