Как изменить положение MessageDlg

Тема в разделе "Delphi", создана пользователем WinHack, 24 ноя 2016.

  1. WinHack
    Здесь мы рассмотрим, как быстро настроить вывод MessageDlg в определенную позицию. При этом, теперь MessageDlg Вы сможете располагать в центре главной формы (poMainFormCenter), по центру экрана (poScreenCenter), в центре рабочего стола (poDesktopCenter) и т.д., применяя константы позиционирования.

    add-custom-text-in-caption.png
    Чтобы все это проделать, создайте новый проект, нажмите F12, чтобы перейти в Редактор кода и запишите следующий код в разделе implementation:

    Код:
    function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
              Buttons: TMsgDlgButtons; Pos: TPosition): integer;
    begin
      with CreateMessageDialog(Msg, DlgType, Buttons) do
      begin
        { помещеаем форму в соответствии
        с переданной позицией }
        Position:= Pos;
        { Возвращаем результат модальной формы приложения
        (mrOk, mrCancel и т.д. }
        Result:= ShowModal;
      end;
    end;
    Здесь мы переопределили стандартную функцию MessageDlg и теперь мы можем ее позиционировать, просто указав это при вызове функции.

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

    Код:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      { Помещаем сообщение в центре главной формы }
      MessageDlg('Тестовое сообщение', mtInformation,
                  [mbOk], poMainFormCenter);
    end;
    Вот и все. Теперь можно управлять результатом вывода диалогового окна MessageDlg. Таким образом можно переопределять и другие функции.