Avez-vous déjà trouvé votre ajoutant le même code à des formes différentes? Eh bien maintenant vous pouvez utiliser le texte suivant en tant que classe de base pour toutes les formes.

=============== BEGIN CODE ======================
BaseForm unité;

interface

utilise sysutils, Classes, Forms, Windows;

type
TBaseForm = class (TForm)
protégées
IsModal fonction (): Boolean;
procédure keydown (var Key: Word; Maj: TShiftState); override;
procédure ShowError (E: Exception);
fonction MsgBox (Msg: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer; surcharge;
fonction MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer; surcharge;
fin;

la mise en œuvre

utilise des contrôles;

TPipeCallBaseForm ()

fonction TBaseForm.MsgBox (Msg: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer;
commencer
Résultat: = MsgBox (Msg, Légende, uType);
fin;

procédure TBaseForm.KeyDown (var Key: Word; Maj: TShiftState);
commencer
hérité;

if ((IsModal) et (GetActiveWindow () = Handle) et (Key = VK_ESCAPE)) puis
ModalResult: = mrCancel;
fin;

fonction TBaseForm.MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK ou MB_ICONSTOP): Integer;
var
FlashInfo: FLASHWINFO;
commencer
if (GetForegroundWindow () <> Handle), puis
commencer
(* Si la fenêtre n'est pas active rendre flash pour alerter l'utilisateur *)
FillChar (FlashInfo, sizeof (FLASHWINFO), 0);
FlashInfo.cbSize: = sizeof (FLASHWINFO);
FlashInfo.dwFlags: = FLASHW_ALL ou FLASHW_TIMERNOFG;
FlashInfo.hwnd: = Handle;
FlashWindowEx (FlashInfo);
fin;

Résultat: = MessageBox (Handle, PChar (Msg), PChar (Caption), uType);
fin;

procédure TBaseForm.ShowError (E: Exception);
commencer
MsgBox (Format ( 'Erreur:% s' # 13 # 13'Error Class:% s', [E. Message, E. ClassName]));
fin;

fonction TBaseForm.IsModal: Boolean;
commencer
Résultat: = (fsModal dans FormState);
fin;

fin.

=============== END CODE ======================

Pour utiliser cette forme de base simple, vous ajoutez "BaseForm" clause de l'utilisation et de changement des formes de mise en œuvre à partir de:

TfrmMyForm = class (TForm)

À

TfrmMyForm = class (TBaseForm)

Maintenant, chaque forme aura la capacité à:

  • Affichage d'une erreur de manière cohérente
  • Afficher une MessageDlg clignoter la fenêtre, tandis que si elle n'est pas active.
  • Retour mrCancel si l'utilisateur appuie sur la touche ESC sur un dialogue modal.

Average rating: