Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2 семестр.doc
Скачиваний:
42
Добавлен:
27.05.2015
Размер:
777.73 Кб
Скачать

5.5. Процедуры и функции, реализующие диалоги

Процедура ShowMessage, функции MessageDlg и MessageDlgPos отображают окно (панель) вывода сообщений; функции InputBox и InputQuery отображают окно (панель) для ввода информации.

Процедура ShowMessage (const Msg: String) отображает окно сообщения с кнопкой ОК. Заголовок содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения.

Пример отображения простейшего окна сообщений:

procedure TForm1.btnDialog1Click(Sender: TObject);

begin

ShowMessage('Простейшее диалоговое окно');

end;

Функция MessageDlg (const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint): Word отображает окно сообщений в центре экрана для получения ответа пользователя. Параметр Msg содержит отображаемое сообщение. Параметр АTуре определяет тип окна сообщения и может принимать следующие значения:

mtWarning – черный восклицательный знак в желтом треугольнике и заголовок Warning;

mtError – белый косой крест в красном круге и заголовок Error;

mtInformation – синяя буква "i" в белом круге и заголовок Information;

mtConfirmation – синий знак "?" в белом круге и заголовок Confirmation;

mtCustom – картинки нет, в заголовке – название исполняемого файла приложения.

Параметр AButtons задает набор кнопок окна:

mbYes – кнопка с надписью Yes;

mbNo – кнопка с надписью No;

mbOk – кнопка с надписью ОК;

mbCancel – кнопка с надписью Cancel;

mbHelp – кнопка с надписью Help;

mbAbort – кнопка с надписью Abort;

mbRetry – кнопка с надписью Retry;

mbIgnore – кнопка с надписью Ignore;

mbAll – кнопка с надписью Аll.

Для параметра AButtons имеются две константы mbYesNoCancel и mbOKCancel, определяющие предопределенные наборы кнопок:

mbYesNoCancel = [mbYes, mbNo, mbCancel];

mbOKCancel = [mbOK, mbCancel].

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

Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалога при нажатии <F1>. Обычно значение HelpCtx равно нулю.

Пример использования функции MessageDlg:

procedure TForm1.btnTestDateClick(Sender: TObject);

var rez :TModalResult;

begin

if length(edtDate.Text) < 8 then

begin

rez := MessageDlg('неправильная дата!' +

#10#13’Исправить автоматически?', mtError, [mbOK, mbNo], 0);

if rez = mrOK then edtDate.Text := DateToStr(Date);

if rez = mrNo then if edtDate.CanFocus then edtDate.SetFocus;

end;

end;

При нажатии на кнопку btnTestDate производится проверка длины даты, введенной в

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

5.6. Стандартные диалоги

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

На странице Dialogs Палитры компонентов содержатся следующие компоненты, реализующие стандартные диалоги:

OреnDiаlоg – выбор открываемого файла;

SaveDialog – выбор сохраняемого файла;

OреnРiсtureDialog – выбор открываемого графического файла;

SavePictureDialog – выбор сохраняемого графического файла;

FontDialog – настройка параметров шрифта;

ColorDialog – выбор цвета;

PrintDialog – вывод на принтер;

PrinterSetupDialog – выбор принтера и настройка его параметров;

FindDialog – ввод строки текста для поиска;

ReplaceDialog – ввод строк текста для поиска и для замены.

Основные свойства компонентов OpenDialog и SaveDialog:

FileName типа String – указывает имя и полный путь файла, выбранного в диалоге. Имя файла отображается в строке редактирования с названием имя файла и является результатом диалога;

Title типа String – задает заголовок окна. Если свойство Title не установлено, то по умолчанию используется заголовок Open для OpenDialog и заголовок Save – для SaveDialog;

InitialDir типа String – определяет каталог, содержимое которого отображается при вызове окна диалога. Если каталог не задан, то отображается содержимое текущего каталога;

DefaultExt типа String – задает расширение, автоматически подставляемое к имени файла, если пользователем расширение имени не указано;

Options типа TOpenOptions – настройка параметров, управляющих внешним видом и функциональными возможностями диалога;

Filter типа String – задает маски имен файлов, отображаемых в раскрывающемся списке под названием Files of type. В окне диалога видны имена файлов, которые совпадают с указанной маской. По умолчанию значением Filter является пустая строка, что соответствует отображению имен файлов всех типов;

FilterIndex типа Integer – указывает, какая из масок фильтра отображается в списке. По умолчанию свойство FilterIndex имеет значение 1 и используется первая маска.

Фильтр – это последовательность значений, разделенных знаком |. Каждое значение состоит из описания и маски, также разделенных знаком |. Описание представляет собой обычный текст, поясняющий пользователю данную маску. Маска является шаблоном отображаемых файлов и состоит из имени и расширения. Если для одного описания приводится несколько масок, то они разделяются знаком ;. Фильтр обычно формируется при проектировании приложения. Редактор фильтра (Filter Editor) вызывается через свойство Filter Инспектора объектов.

Пример формирования фильтра с двумя масками – маской для текстовых файлов и

маской для всех файлов:

OpenDialog1.Filter:='Текстовые файлы| *.txt;*.doс|Все файлы| *.*';

Так как в раскрывающемся списке диалога отображается только описание фильтра, то в описание целесообразно включить маску, например: OpenDialog1.Filter:= 'Текстовые файлы *.txt;*.doc|*.txt;*.doc' + '|Все файлы *.*|*.*';

Для вызова любого стандартного диалога используется метод Execute тип Boolean. При закрытии диалога кнопкой Open или Save (Открыть или Сохранить) функция Execute возвращает значение True, а при отмене диалога – значение False. После закрытия стандартного диалога он через свои свойства возвращает значения, выбранные или установленные в процессе диалога.

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

procedure TForm1.Button2Click(Sender: TObject); // нажатие на кнопку Button2

begin