Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Описание компонентов VCL >> Диалоги >> Диалоги. Типовые диалоги
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


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


Отдельную группу составляют функции, реализующие простые типовые диалоги (не входящие в Палитру компонентов): посылка сообщения пользователю, получение от него одного из множества возможных ответов, ввод строки. В Windows API для этого предназначалась функция MessageBox. В Delphi существует целый ряд специализированных функций. Простейшую задачу ? информирование пользователя сообщением ? можно решить при помощи функций:

procedure ShowMessage(const Msg: string);

procedure ShowMessagePos(const Msg: string; X, Y: Integer);

В этом случае диалог состоит из статического текста Msg и кнопки ОК. Вторая функция отличается тем, что диалог можно поместить в требуемую точку (X,Y).

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

function MessageDlg(const Msg: string; AType: TMsgDlgType; AButtons:TMsgDlgButtons; HelpCtx: Longint): Word;

function MessageDlgPos(const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer): Word;

Здесь информация представлена в строке Msg и в пиктограмме, соответствующей типу диалога:

TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom) ;

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

TMsgDlgBtn = (mbYes, mbNo, rnbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbHelp);

TMsgDlgButtons = set of TMsgDlgBtn;

Для типовых случаев уже описаны подмножества кнопок:

mbYesNoCancel = [mbYes, mbNo, mbCancel];

mbOKCancel = [mbOK, mbCancel];

mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore] ;

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

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

Функция

function InputBox(const ACaption, APrompt, ADefault: string): string;

есть вызов диалога с заголовком ACaption, в котором подсказка APrompt приглашает набрать в редактирующем элементе текст. Первоначально в него загружается текст ADefault. Функция возвращает строку, находившуюся в редактирующем элементе на момент закрытия диалога.

Функция

function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;

выполняет аналогичные действия. Набранный текст будет содержаться в строке Value. Однако возвращает она булевское значение, в зависимости от того, нажал ли пользователь OK (<Enter>) или Cancel (<Esc>).

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

function CreateMessageDialog(const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons): TForm;

Она конструирует и возвращает указатель на форму, идентичную MessageDlg с соответствующими параметрами.

Внешний вид последней группы диалогов можно изменить, переустановив значения, определенные в модуле DIALOGS:

MsgDlgButtonStyle: TButtonStyle = bsAutoDetect;

MsgDlgGlyphs: Boolean = True;



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017