Справочные данные 1) Стандартные подпрограммы function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; Функция отображает окно сообщения и позволяет получить ответ от пользователя в виде целого числа, зависящий от нажатой кнопки окна. Соответствующими фактическими параметрами должны быть Msg – строка сообщения, DlgType – одно из значений типа TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom), определяющее текст заголовка окна рисунок значка на окне (например, Confirm и ), Buttons – конструктор множества, элементами которого могут быть значения базового типа TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp) представляющие различные кнопки окна (их число равно числу элементов множества), а функция вернет число, соответствующее нажатой кнопке (каждому значению базового типа соответствует предописанная именованная константа вида id<ИмяКнопки>, например, константному идентификатору mbYes будет соответствовать кнопка с именем Yes и возвращаемое при её нажатии значение idYes=6). HelpCtx – целое число – представляющее появляющуюся при нажатии клавиши F1 справу, 0 – нет справки. Пример. В процедуре возникла ситуация, когда решение должен принять пользователь case MessageDlg(‘Продолжить работу?’; mtConfirmation, [mbYes, mbNo],0) of idYes:; // продолжить выполнение процедуры idNo: exit; //выход из процедуры end; Else function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода,соответствующей параметру Value, и кнопками OK и Cancel. При щелчке на кнопке OK функция вернёт значение true и текст из поля в параметре Value. При щелчке на кнопке Cancel функция вернёт значение false и пустую строку в параметре Value. function InputBox(const ACaption, APrompt, ADefault: string): string; Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода, в которой изначально будет отображен текст, заданный параметром ADefault, и кнопками OK и Cancel. При щелчке на кнопке OK функция вернёт значение текст из поля ввода, а при щелчке на кнопке Cancel функция вернёт значение параметра ADefault даже если пользователь изменил текст в поле ввода. function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; Параметр Path представляет путь доступа к каталогу и маску искомых файлов. Функция вернёт значение 0, если в этом каталоге найдётся хотя бы один файл, соответствующий маске (например, задание первого параметра равным ‘D:\temp\*.txt’ ,будет задавать поиск текстовых файлов в каталоге D:\txt). Прараметр Attr задаёт атрибуты искомых файлов:скрытый, системный, каталог и др. []. При поиске файлов с любой комбинацией атрибутов этот параметр должен иметь значение $3f. Выходной параметр F является записью типа TsearchRec, полями которой, в частности, являются поле с именем Name, представляющее строку с именем и типом найденного файла, поле с именем Size, представляющее размер файла в байтах. Значние параметра F нельзя менять. Он потребуется при вызове процедуры FindNext (см. ниже), продолжающей поиск файлов. function FindNext(var F: TSearchRec): Integer; Функция вернёт значение 0, если в каталоге найдётся хотя бы ещё один файл, соответствующий маске. При этом будет представлять характеристики этого найденного файла. procedure FindClose(var F: TSearchRec); Процедура завершает поиск файлов. 2) Классы TOpenDialog Назначение Диалоговое окно для выбора открываемого файла. Свойства FileName:TFileName - Строка, представляющая спецификацию выбранного файла. InitialDir: String – Задаёт, какой каталог станет текущим при открытии диалога. Filter: String - Описывает маски файлов (фильтры), доступных в диалоге [1]. Например, оператор OpenDialog1.Filter :='*.pas, *.txt|*.PAS;*.TXT'|все файлы|*.*’; позволит выбирать отображение либо только файлов типа .pas и .txt, либо всех файлов текущего каталога. Options: TOpenOptions - Описывает вид окна и возможности выбора файлов в диалоге. Задаётся конструктором множества с базовым перечисляемым типом TopenOption [1]. Метод function Execute: Boolean; override; Отображает окно диалога выбора файла. При закрытии окна вернёт true, если файл выбран (выдлен и нажата кнопка Открыть), иначе – false (нажата кнопка Отмена). TSaveDialog Назначение Диалоговое окно выбора файла для сохранения. Наследует от TopenDialog свойства и методы. TMemo Назначение Компонент для обработки многострочных текстов. Свойства Text: TCaption- строка, представляющая весь текст компонента, включая маркеры разделителей строк #$D#$A. Lines: Tstrings – набор строк текста компонента. SelText: string – выделенный текст компонента Modified: Boolean – получает значение true, если текст изменён пользователем; изначатьно, или после загрузки из файла, или когда нет текста свойство имеет значение false. ScrollBars: TscrollStyle – задаёт возможные варианты использования полос прокрутки: ssNone - нет полос прокрутки, ssHorizontal – есть только горизонтальная полоса прокрутки, ssVertical – есть только вертикальная полоса прокрутки, ssBoth есть горизонтальная и вертикальная полосы прокрутки. Методы procedure Clear; virtual; Отображает окно диалога выбора файла. При закрытии окна вернёт true, если файл выбран (выдлен и нажата кнопка Открыть), иначе – false (нажата кнопка Отмена). procedure SelectAll – выделить весь текст компонента. 3) Типы данных 4) 5) 6) Примеры из справки пример на OpenDialog1.Execute var F: TextFile; S: string; begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); { File selected in dialog } Reset(F); Readln(F, S); { Read first line of file } Edit1.Text := S; { Put string in a TEdit control } CloseFile(F); end; end; procedure TForm1.Button1Click(Sender: TObject); пример на OpenDialog1.Execute и FileName var F: Textfile; begin OpenDialog1.Title := 'Delete File'; if OpenDialog1.Execute then begin AssignFile(F, OpenDialog1.FileName); try Reset(F); if MessageDlg('Erase ' + OpenDialog1.FileName + '?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin CloseFile(F); Erase(F); end; except on EInOutError do MessageDlg('File I/O error.', mtError, [mbOk], 0); end; end; end;