Программа на DelphiРефераты >> Программирование и компьютеры >> Программа на Delphi
Ниже приведен пример исходных текстов головной программы KdnBread и одного подчиненного (используемого) ею модуля Main.
Program KdnBread; {начало текста головной программы} {текст содержится в файле 'c:\Borland\Projects\KdnBread.pas'} uses {ссылки на модули типа unit } Forms, {ссылка на модуль Forms } main in 'main.pas' {Form1}; {ссылка на модуль main } {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. {конец текста головной программы}
unit Main; {начало текста модуля Main} { текст модуля содержится в файле 'c:\Borland\Projects\Main.pas' } interface {начало интерфейсной части модуля} uses Windows, Messages, SysUtils, {ссылки на другие модули } Graphics, Controls, Forms, StdCtrls;
Type {описание типов}
TForm1 = class(TForm) Button1: TButton; L1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
Var {описание переменных} Form1: TForm1; b: boolean; i: Integer; IterationPar: Word;
function OneSymbString(c: Char; d: byte): String; {заголовок функции} implementation {начало процедурного блока модуля}
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); {заголовок процедуры} begin if (i > 12) and b then L1.Caption:='Студент:'+AnsiUpperCase ('Иванов Владимир Иванович'); end; {конец процедуры}
function OneSymbString(c: Char; d: byte): String; {заголовок функции} begin Result:=CharStr(c, d); end; {конец функции}
initialization IterationPar:= 0; end. {конец текста модуля Main}
Выполнение программы всегда начинается с модуля Program, т. е. с головной программы. Program активизирует выполнение процедур и функций в используемых ею модулях Unit.
16.1. Структура модуля
Модуль имеет следующую структуру:
Unit <имя>; interface <интерфейсная часть>
implementation <выполняемая часть>
initialization <блок инициирования>
finalization <блок завершения>
end.
16.2. Раздел Interface
Раздел Interface модуля Unit предназначен для описания внешних компонент: используемых модулей, типов, констант, переменных, заголовков процедур и функций. Так, в вышеприведенном примере в разделе Interface содержатся:
- в списке Uses – ссылки на модули Windows, Messages, SysUtils, Graphics, Controls, Forms, StdCtrls;
- в секции Type – описание типа экранной формы – класс TForm1;
- в секции Var – описание переменных Form1, b, i и описание заголов-ка функции OneSymbStr, предназначенной для создания строки повторяю-щихся d раз символов Ch.
16.3. Раздел Implementation
Раздел Implementation модуля Unit предназначен для описания внутренних, т.е. доступных к использованию только внутри данного Unit, компонент: типов, констант, переменных, процедур и функций. Так, в вышеприведенном примере в разделе Implementation содержится описание процедуры TForm1.Button1Click(Sender: TObject) и функции OneSymbStr.
16.4. Инициирование и завершение модуля
Всякий модуль может содержать блок инициирования и блок завершения. Эти блоки располагаются в нижней части модуля, непосредственно примыкая к последнему оператору end. Первый блок начинается словом initialization, второй – словом finalization.
Блок инициирования initialization заканчивается последним оператором end модуля либо, при наличии блока завершения, продолжается до слова finalization.
Обычно в блоке инициирования располагаются операторы определения начальных значений каких-либо переменных, выделения ресурсов памяти, открытия файлов и пр., т. е. все то, что необходимо инициализировать в модуле до передачи управления в использующие его модули.
Блок завершения может быть использован только в том случае, если модуль имеет блок инициирования. Этот блок, в противоположность блоку инициирования, предназначен для размещения операторов завершения, т. е. операторов освобождения ресурсов памяти, закрытия ранее открытых в блоке инициирования файлов и пр.
Например, модуль может заканчиваться следующими операторами:
…
Initialization {инициирование}
Ga:= 0; AssignFile(f, 'c:\Projects\BreadPro\First.dat'); Reset(f, SizeOf(Rec1)); New(AppMem);
Finalization {завершение} Dispose(AppMem); CloseFile(f); End. {последний оператор модуля}
Если несколько модулей имеют блоки инициирования, то они выполняются в том порядке, в котором имена модулей располагаются в списке Uses головной программы. Если несколько модулей содержат блоки завершения, то они выполняются в порядке, противоположном порядку перечисления модулей в списке uses головной программы.
17. Файлы
Файлом называется область данных на внешнем носителе – жестком диске, дискете и пр. Всякий файл имеет имя, представляющее собой строку символов. Различают обычное имя (или просто имя) и полное имя. Под полным именем понимается абсолютный адрес файла, состоящий из пути и имени файла. Например, строка 'C:\Program Files\Folder1\Students.dat' является полным именем. Оно состоит из пути 'C:\Program Files\Folder1' к файлу и собственно имени файла 'Students.dat'. Это означает, что файл 'Students.dat' расположен на диске C в папке (директории) Program Files непосредственно в подпапке (субдиректории) Folder1.
Ранее упоминалось, что в языке Object Pascal существует три типа файлов:
<имя> = TextFile; {текстовые файлы}
<имя> = File; {файлы без типа}
<имя> = File of <тип даных>; {файлы с типом}
17.1. Файловая переменная
Для того чтобы получить доступ к файлу, его необходимо сначала открыть. Открытие файла выполняется посредством связывания файла с особой переменной, называемой файловой переменной. Именно файловая переменная и характеризует тип файла. Связывание файла с файловой переменной еще не означает открытия этого файла. Открытие файла производится специальными процедурами, о которых будет упомянуто ниже.
Связывание файла с файловой переменной производится с помощью стандартной процедуры AssignFile, которая имеет заголовок:
AssignFile(<файловая переменная >, <имя файла>);
Например, фрагмент
Var
f1: TextFile; FullPath: String[60]; … FullPath:= 'a:\a1.res'; AssignFile(f1, FullPath);
cодержит объявление файловой переменной f1 текстового типа и строки FullPath, которые затем используются в исполнительной части для указания полного имени файла и связывания его с файловой переменной f1.
17.2. Текстовые файлы
Текстовой файл – это последовательность символьных строк перемен-ной длины. Всякая строка завершается маркером конца строки, всякий текстовой файл завершается маркером конца файла. Такие файлы можно обрабатывать только последовательно. Один и тот же текстовой файл не может быть открыт одновременно для ввода и вывода. Файловая переменная этого файла имеет тип TextFile или просто Text.