Haben Sie sich jemals selbst gefunden Addition der gleichen Code zu verschiedenen Formen? Nun können Sie die folgenden als Basis für alle Formen.
=============== BEGIN CODE ======================
Einheit BaseForm;
Schnittstelle
verwendet SysUtils, Klassen, Forms, Windows;
Typ
TBaseForm = class (TForm)
geschützt
Funktion IsModal (): Boolean;
Verfahren KeyDown (var Key: Word; Shift: TShiftState); override;
Verfahren SHOWERROR (E: Exception);
Funktion MsgBox (Msg: string;
uType: Integer = MB_OK oder MB_ICONSTOP): Integer; Überlast;
Funktion MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK oder MB_ICONSTOP): Integer; Überlast;
end;
Umsetzung
Controls verwendet;
TPipeCallBaseForm ()
Funktion TBaseForm.MsgBox (Msg: string;
uType: Integer = MB_OK oder MB_ICONSTOP): Integer;
beginnen
Result: = MsgBox (Msg, Caption, uType);
end;
Verfahren TBaseForm.KeyDown (var Key: Word; Shift: TShiftState);
beginnen
inherited;
if ((IsModal) und (GetActiveWindow () = Handle) und (Key = VK_ESCAPE)), dann
ModalResult: = mrCancel;
end;
Funktion TBaseForm.MsgBox (Msg, MsgCaption: string;
uType: Integer = MB_OK oder MB_ICONSTOP): Integer;
var
FlashInfo: FLASHWINFO;
beginnen
if (GetForegroundWindow () <> Handle), dann
beginnen
(* Wenn das aktuelle Fenster nicht aktiv ist es Flash-Benutzer zu warnen *)
FillChar (FlashInfo, SizeOf (FLASHWINFO), 0);
FlashInfo.cbSize: = SizeOf (FLASHWINFO);
FlashInfo.dwFlags: = FLASHW_ALL oder FLASHW_TIMERNOFG;
FlashInfo.hwnd: = Handle;
FlashWindowEx (FlashInfo);
end;
Result: = MessageBox (Handle, PChar (MSG), PChar (Caption), uType);
end;
Verfahren TBaseForm.ShowError (E: Exception);
beginnen
MsgBox (Format ( 'Fehler:% s "# 13 # 13'Error Klasse:% s', [E. Message, E. ClassName]));
end;
Funktion TBaseForm.IsModal: Boolean;
beginnen
Result: = (fsModal in FormState);
end;
Ende.
=============== END CODE ======================
Zur Verwendung dieser Basis Form Sie einfach "BaseForm", die bei der Verwendung Klausel und ändern Sie die Umsetzung Formularen aus:
TfrmMyForm = class (TForm)
Zu
TfrmMyForm = class (TBaseForm)
Jetzt jeder Form wird in der Lage sein:
- Display ein Fehler in einer konsistenten Art
- Zeige ein MessageDlg blinkt, während das Fenster, wenn nicht aktiv.
- Zurück mrCancel, wenn der Benutzer drückt die ESC-Taste auf eines modalen Dialoges.

Delicious
Digg
Google
Yahoo