Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в среде Delphy / Программирование в среде Delphi.doc
Скачиваний:
189
Добавлен:
01.05.2014
Размер:
1.3 Mб
Скачать

23. Стандартные диалоговые окна и типовые диалоги

23.1. Стандартные диалоговые окна

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

Для начала рассмотрим возможности компонента TOpenDialog . Этот диалог предназначен для выбора файлов на диске. Основными его свойствами являются:

Property Filter:String; – определяет фильтр для отбора файлов.

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

OpenDialog1.Filter:=’Графические файлы | *.bmp, *.gif, *.jpg ’+

’| Текстовые файлы | *.txt, *.pas ’;

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

Property FileName:WideString; – определяет имя выбранного файла.

Property Options:TOpenOptions; – определяет множество возможностей выбора файлов.

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

Property Files:TStrings;

Для выбора нескольких файлов следует удерживать клавишу Ctrl и мышью отмечать выбранные файлы.

Рассмотрим пример обработчика события нажатия кнопки с надписью «Открыть файл», который производит поиск файла с расширением *.pas и затем воспроизводит содержимое этого файла в компоненте Memo1:

Procedure TForm1.Button1Click(Sender:TObject);

Begin With OpenDialog1 do Begin

Filter:=’Паскалевские файлы | *.pas’;

If Execute then Memo1.Lines.LoadFromFile(FileName);

End;

End;

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

TSaveDialog – сохранение файлов,

TOpenPictureDialog – открытие картинки,

TSavePictureDialog – сохранение картинки,

TFontDialog – выбор шрифта,

TColorDialog – выбор цвета,

TPrintDialog – выбор текущего принтера из списка зарегистрированных в операционной системе,

TPrinterSetUpDialog – настройка параметров печати,

TFindDialog – поиск образа в тексте,

TReplaceDialog – поиск образа и его замены в тексте,

TPageSetUpDialog – настройка параметров печатаемой страницы.

23.2. Типовые диалоги

Типовые диалоговые окна вызываются как обычные процедуры или функциями по имени диалога. Рассмотрим основные типовые диалоги.

Procedure ShowMessage(const Msg:String); – вывод на экран окна сообщения с текстом Msg и одной кнопкой Ok. Положение окна определяет сама операционная система.

Например:

Рис.23.1. Вид окна диалога процедуры ShowMessage

Procedure ShowMessagePos(const Msg:String; x,y:Integer); – вывод окна диалога, где x и y определяют положение на экране верхнего левого угла окна.

Function (const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; – вывод окна диалога с возможным выбором ответа на сообщение Msg. Здесь второй параметр определяет тип диалога по отображаемому в окне значку. Возможны следующие варианты значков:

mtWarning – предупреждение ,

mtError – ошибка ,

mtInformation – информационное сообщения – ,

mtConfirmation – знак вопроса ,

mtCustom – отсутствие значка.

В окне диалога можно расположить любое множество предопределенных кнопок с текстом:

mbYes – 'Yes' – да,

mbNo A – 'No' – нет,

mbOK – 'OK' – хорошо,

mbCancel – 'Cancel' – закончить,

mbAbort – 'Abort' – прервать,

mbRetry – 'Retry' – повторить,

mbIgnore – 'Ignore' – игнорировать,

mbAll – 'All' – для всех,

mbNoToAll – 'No to All' – не для всех,

mbYesToAll – 'Yes to All' – да, для всех.

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

Функция возвращает код нажатой кнопки. Коды определяются текстовыми константами, такими же, как и множество кнопок, только начинаются они с приставки «mr» вместо «mb».

Рассмотрим пример использования этого диалога:

Case MessageDlg(’Продолжать выполнение программы?’,

mtConfirmation, [mbYes,mbNo],0) of

mrYes:ShowMessage(’Нажата кнопка – Да’);

mrNo:ShowMessage(’Нажата кнопка – Нет’);

end;

В результате вызова функции MessageDlg появится следующее окно с двумя кнопками:

Рис.23.2 Вид окна диагола MessageDlg

Нажатие любой из кнопок будет сопровождаться появлением сообщения «Нажата кнопка – Да» или «Нажата кнопка – Нет».

Function InputBox(const ACaption, APrompt, ADefault: string): string; – вывод окна диалога для ввода строки. Здесь:

ACaption – заголовок окна диалога,

APrompt – пояснение для вводимого текста,

ADefault – начальное значение строки ввода.

Например, следующий оператор

S:=InputBox(’Заголовок окна’, ’Введите имя файла’, ’c:\my\p1.pas’);

вызовет появление следующего окна для ввода текста:

Рис.23.3. Вид окна диалога InputBox