Диалоговые окна для вывода сообщений в Delphi (ShowMessage, MessageDlg и MessageDlgPos)

Давайте рассмотрим  процедуру и пару функций Delphi для создания простых диалоговых окон вывода сообщений.

Это процедура ShowMessage, функции MessageDlgPos и MessageDlg, они показывают панель (окно) вывода сообщений.

Процедура  ShowMessageShowMessage(const Msg: String) - эта процедура выводит окно с сообщением и кнопкой Ok. В заголовке содержится название исполняемого файла, если в опциях приложения не задан параметр Title, если задан то выводиться будет он. Строка Msg - будет выводиться как текст сообщения.

MessageDlg(const Msg: String; AType: TMsgDlgType; Abuttons: TMsgButtons; HelpCtx: Longint): Word - функция показывающая диалоговое окно сообщения в центре экрана и дает возможность пользователю ответить на сообщение. Msg - параметр отвечающий за выводимый текст сообщения.

Тип выводимого окна сообщения зависит от параметра AType, список возможных значений которого следующий:

  • mtErrore - на фоне красного круга расположен белый косой крест и заголовок окна -    Error;
  • mtWarning - на фоне желтого треугольника расположен черный восклицательный знак -"!"   и заголовок окна - Warning;
  • mtConfirmation на фоне белого круга расположен синий знак "?"  и заголовок окна - Confimation;
  • mtInformation - на фоне белого круга расположена синия буква "i"  и заголовок окна - Information;
  • mtCustom - диалоговое окно не содержит рисунка, в заголовке выводиться имя исполняемого файла приложения или Title свойства Application приложения.

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

  • кнопка Yes - mbYes,
  • кнопка Ok - mbOk, 
  • кнопка No - mbNo,
  • кнопка Cancel - mbCancel,
  • кнопка  Abort - mbAbort,
  • кнопка Retry - mbRetry,
  • кнопка Ignore - mbIgnore,
  • кнопка All - mbAll,
  • кнопка Help - mbHelp.

Список из необходимых, перечисленных кнопок должен  быть заключен в квадратные скобки.

MessageDlg('Большое значение', mtConfirmation, [mbYes,mbNo],0 );

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

  • кнопки OK и Cancel - mbOkCancel,
  • кнопки Yes, No и Cancel - mbYesNoCancel, 
  • кнопки Abort, Retry и Ignore - mbAbortRetryIgnore.

Эти константы не надо брать в скобки, так как они являются предопределенными множествами.

Если мы внутри скобок не объявим список, то в диалоговом окне не будет ни одной кнопки и пользователю придется закрывать окно системными кнопками Windows.

MessageDlg('Большое значение', mtConfirmation,mbAbortRetryIgnore,0 );

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

mrOk               mrRetry            mrNo
mrNone           mrAbort            mrYes
mrCancel        mrIgnore           mrAll

Параметр HelpCtx задает тему справки. Ее можно вызвать во время показа диалогового окна клавишей F1. Обычно этот параметр устанавливается равным нулю и справка не выводиться.

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

Давайте создадим простое приложение для закрепления материала.

В обработчике формы onCreate формы создадим заголовок нашей программы:

procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.Title:= 'Моя программа';
end;

На форму поместим простую кнопку и создадим для нее обработчик:

procedure TForm1.Button5Click(Sender: TObject);
var
  rezult : TModalResult;
begin
rezult := MessageDlg('Предупреждение',mtInformation, mbOKCancel, 0);

  if rezult = mrOK then ShowMessage('нажата кнопка OK');
  if rezult = mrCancel then ShowMessage('нажата кнопка Cancel');
end;

функция messagedlg

Запустив приложение щелкнем по  кнопке. Перед нами появиться диалоговое окно приведенное слева. Нажав на кнопки OK и Cancel мы получим два разных сообщения информирующих нас о том какую кнопку мы выбрали.

MessageDlgPos(const Msg: String; Atype: AMsgDlgType; Abuttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer):Word - эта функция отличается от MessageDlg, тем что у нее есть два параметра X и Y, устанавливающие положение на экране.

Итог: нами были рассмотрены: процедура ShowMessage и функции MessageDlg и MessageDlgPos. С помощью них мы научились выводить информацию для информации пользователя.

Понравилась статья? Раскажите друзьям:
Общайтесь со мной

One thought on “Диалоговые окна для вывода сообщений в Delphi (ShowMessage, MessageDlg и MessageDlgPos)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>