Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Центрирование информационного диалога (MessageDlg)

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Центрирование информационного диалога (MessageDlg)


unit kns;

{$R-}

interface

uses Forms, Dialogs;

{ Центрирование информационного диалога }
function MessageDlgCtr(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

implementation

uses Consts;

{ Функция MessageDlg располагает диалог над центром активного окна }

function MessageDlgCtr(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
  with CreateMessageDialog(Msg, DlgType, Buttons) do
  try
    HelpContext := HelpCtx;
    Left := Screen.ActiveForm.Left + (Screen.ActiveForm.Width div 2) -
      (Width div 2);

    Top := Screen.ActiveForm.Top + (Screen.ActiveForm.Height div 2) -
      (Height div 2);

    Result := ShowModal;
  finally
    Free;
  end;
end;

end.

Это код на языке программирования Delphi, который создает пользовательскую реализацию функции MessageDlg, отображающей диалоговое окно с указанным сообщением, типом диалога, кнопками и контекстом помощи. Основное отличие этого кода от стандартной функции MessageDlg заключается в том, что этот код центрирует диалоговое окно над активным формой.

Разбивка кода:

  1. Первая секция объявляет имя модуля (kns) и указывает ресурсному компилятору не включать отладочную информацию ({$R-}).
  2. Интерфейсная секция объявляет использование (uses), которое включает в себя модули Forms и Dialogs.
  3. Функциональная декларация определяет MessageDlgCtr, пользовательскую реализацию функции MessageDlg.

Секция реализации начинается с использованием (uses) модуля Consts.

  1. Функция MessageDlgCtr создает новое диалоговое окно, используя конструктор CreateMessageDialog, передавая в него сообщение, тип диалога и кнопки.
  2. Затем функция устанавливает контекст помощи с помощью свойства HelpContext.
  3. Для центрирования диалогового окна над активной формой функция рассчитывает координаты левого верхнего угла диалогового окна на основе позиции и размера активной формы:
    • Она вычитывает половину ширины диалогового окна из координаты левого края активной формы, чтобы центрировать его горизонтально.
    • Она вычитает половину высоты диалогового окна из координаты верхнего края активной формы, чтобы центрировать ее вертикально.
  4. Функция затем отображает модальное диалоговое окно с помощью ShowModal и возвращает результат.
  5. Блок finally используется для освобождения выделенной памяти для диалогового окна, когда она больше не нужна.

Эта пользовательская реализация MessageDlg может быть полезной в ситуациях, где вам нужно иметь более контроля над позиционированием диалогового окна.

Данная статья описывает функцию MessageDlgCtr, которая центрирует информационный диалог над активным окном на экране.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Диалоги и Фреймы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 18:11:53/0.0032088756561279/0