BaseForm class

Har du noen gang funnet deg selv å legge den samme koden til ulike former? Vel nå kan du bruke følgende som en base klasse for alle former.
=============== BEGIN KODE =============== ======= enhet BaseForm;
grensesnitt
bruker SysUtils, klasser, skjemaer, Windows;
typen TBaseForm = klasse (TForm) beskyttet funksjon IsModal (): Boolean; Prosedyren KeyDown (var Key: Word, Shift: TShiftState); styre; Prosedyren ShowError (E: Exception); funksjonen MsgBox (Msg: string; uType: Integer = MB_OK eller MB_ICONSTOP): Integer; overbelastning; funksjonen MsgBox (MSG, MsgCaption: string; uType: Integer = MB_OK eller MB_ICONSTOP): Integer; overbelastning; end;
implementering
bruker Controls;
{TPipeCallBaseForm}
funksjon TBaseForm.MsgBox (Msg: string; uType: Integer = MB_OK eller MB_ICONSTOP): Integer; begynne Resultat: = MsgBox (MSG, Caption, uType); end;
prosedyre TBaseForm.KeyDown (var Key: Word, Shift: TShiftState); begynne arvet,
if ((IsModal) og (GetActiveWindow () = håndtak) og (Key = VK_ESCAPE)) så ModalResult: = mrCancel; ende;
funksjon TBaseForm.MsgBox (MSG, MsgCaption: string; uType: Integer = MB_OK eller MB_ICONSTOP): Integer; Var FlashInfo: FLASHWINFO; begynne if (GetForegroundWindow () < > Håndtak) da begynne (* hvis gjeldende vindu er ikke aktiv gjør det blinker for å varsle brukeren *) FillChar (FlashInfo, sizeof (FLASHWINFO), 0); FlashInfo.cbSize: = sizeof (FLASHWINFO); FlashInfo.dwFlags: = FLASHW_ALL eller FLASHW_TIMERNOFG; FlashInfo.hwnd: = Håndtak; FlashWindowEx (FlashInfo); enden,
Resultat: = messagebox (Håndtak, PChar (Msg), PChar (Caption), uType); end;
prosedyre TBaseForm.ShowError (E: Exception); begynne MsgBox (Format ('Feil:% s' # 13 # 13'Error Klasse:% s ', [E.Message, E.ClassName])); end;
funksjon TBaseForm.IsModal: Boolean; begynne Resultat: = (fsModal i FormState); end;.
slutten
=============== END KODE ======================
For å bruke denne baseform du enkelt legge til " BaseForm " til bruk klausulen og endre skjemaer gjennomføring fra:
TfrmMyForm = klasse (TForm)
Til
TfrmMyForm = klasse (TBaseForm)
Nå hver form vil ha muligheten til å:


Vise en feil på en konsekvent måte

Vis en MessageDlg mens blinkende vinduet hvis ikke aktiv.

Return mrCancel hvis brukeren trykker på ESC-tasten på en modal dialog.



Previous:
Next Page: