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.

Delicious
Digg
Google
Yahoo