Você já enfrentou acrescentando o mesmo código para diferentes formas? E agora você pode usar o seguinte como uma classe base para todas as formas.

=============== BEGIN CODE ======================
BaseForm unidade;

interface

usa SysUtils, Classes, Forms, o Windows;

tipo
TBaseForm = class (TForm)
protegida
IsModal função (): Boolean;
procedimento KeyDown (var Key: Word; Shift: TShiftState); override;
procedimento showError (E: Exception);
função MsgBox (Msg: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer; sobrecarga;
função MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer; sobrecarga;
final;

execução

usa controles;

TPipeCallBaseForm ()

função TBaseForm.MsgBox (Msg: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer;
começo
Resultado: = MsgBox (Msg, Legenda, uType);
final;

procedimento TBaseForm.KeyDown (var Key: Word; Shift: TShiftState);
começo
herdou;

if ((IsModal) e (GetActiveWindow () = Manipular) e (Key = VK_ESCAPE)) então
ModalResult: = mrCancel;
final;

função TBaseForm.MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer;
var
FlashInfo: FLASHWINFO;
começo
if (GetForegroundWindow () <> Manilha), em seguida,
começo
(* Se a janela atual não está activa tornam flash para alertar usuário *)
FillChar (FlashInfo, sizeof (FLASHWINFO), 0);
FlashInfo.cbSize: = sizeof (FLASHWINFO);
FlashInfo.dwFlags: = FLASHW_ALL ou FLASHW_TIMERNOFG;
FlashInfo.hwnd: = Handle;
FlashWindowEx (FlashInfo);
final;

Resultado: = MessageBox (Handle, PChar (MSG), PChar (Caption), uType);
final;

procedimento TBaseForm.ShowError (E: Exception);
começo
MsgBox (Format ( 'Erro:% s "# 13 # 13'Error Classe:% s', [E. Message, E. className]));
final;

TBaseForm.IsModal função: Boolean;
começo
Resultado: = (fsModal em FormState);
final;

fim.

=============== FIM DO CÓDIGO ======================

Para utilizar esta base forma simples você adicionar "BaseForm" utiliza a cláusula de mudança e as formas de aplicação:

TfrmMyForm = class (TForm)

Para

TfrmMyForm = class (TBaseForm)

Agora, cada formulário terá a capacidade de:

  • Mostrar um erro de forma consistente
  • Mostrar uma MessageDlg piscando enquanto a janela não se ativa.
  • Retornar mrCancel se o usuário pressionar a tecla ESC em um diálogo modal.

Average rating: