La classe baseform classe
Avez-vous jamais trouvé vous-même en ajoutant le même code pour les différentes formes? & nbsp eh Bien maintenant vous pouvez utiliser ce qui suit comme une classe de base pour toutes les formes.
=============== & nbsp & nbsp COMMENCER CODE & nbsp ======================
unité de la classe baseform
interface
utilise SysUtils, Classes, les Formes, Windows
type
& nbsp TBaseForm = class(TForm)
& nbsp protégé
& nbsp & nbsp & nbsp fonction IsModal(): Boolean
& nbsp & nbsp & nbsp procédure KeyDown(var Key: Word Shift: TShiftState) remplacer
& nbsp & nbsp & nbsp procédure ShowError(E: Exception)
& nbsp & nbsp & nbsp fonction MsgBox(Msg: string
& ! & ! & ! & ! & nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer surcharge
& nbsp & nbsp & nbsp fonction MsgBox(Msg, MsgCaption: string
& ! & ! & ! & ! & nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer surcharge
& nbsp fin
la mise en œuvre
utilise des Commandes
{ TPipeCallBaseForm }
la fonction TBaseForm.MsgBox(Msg: string
& nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer
begin
& nbsp Résultat := MsgBox(Msg, Légende, uType)
fin
procédure TBaseForm.KeyDown(var Key: Word Shift: TShiftState)
begin
& nbsp hérité
& nbsp si ((IsModal) et (GetActiveWindow() = Manche) et (Clé = VK_ESCAPE))
& nbsp & nbsp & nbsp ModalResult := mrCancel
fin
la fonction TBaseForm.MsgBox(Msg, MsgCaption: string
& nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer
var
& nbsp FlashInfo: FLASHWINFO
begin
& nbsp si (GetForegroundWindow() <> Poignée)
& nbsp commencer
& nbsp & nbsp & nbsp (* si la fenêtre n'est pas active en faire flash pour alerter l'utilisateur *)
& nbsp & nbsp & nbsp FillChar(FlashInfo, SizeOf(FLASHWINFO), 0)
& nbsp & nbsp & nbsp FlashInfo.cbSize := SizeOf(FLASHWINFO)
& nbsp & nbsp & nbsp FlashInfo.dwFlags := FLASHW_ALL ou FLASHW_TIMERNOFG
& nbsp & nbsp & nbsp FlashInfo.hwnd := Poignée
& nbsp & nbsp & nbsp FlashWindowEx(FlashInfo)
& nbsp fin
& nbsp Résultat := MessageBox(Poignée, PChar(Msg), PChar(Légende), uType)
fin
procédure TBaseForm.ShowError(E: Exception)
begin
& nbsp MsgBox(Format ('Erreur: %s'#13#13'Error Classe: %s', [E. Message, E. ClassName]))
fin
la fonction TBaseForm.IsModal: Boolean
begin
& nbsp Result := (fsModal dans FormState)
fin
à la fin.
=============== & nbsp & nbsp CODE de FIN & nbsp ======================
Pour utiliser cette forme de base, vous ajoutez simplement un 'la classe baseform' à la clause uses et modifier les formulaires de mise en œuvre à partir de:
& nbsp TfrmMyForm = class(TForm)
& nbsp TfrmMyForm = classe(TBaseForm)
Maintenant, chaque formule, vous aurez la possibilité de:
- Affichage d'une erreur d'une façon cohérente,
- Afficher un MessageDlg tout en clignotant la fenêtre si pas active.
- Retour mrCancel si l'utilisateur appuie sur la touche ECHAP sur une boîte de dialogue modale.
La classe baseform classe
La classe baseform classe : Plusieurs milliers de conseils pour vous faciliter la vie.
Avez-vous jamais trouve vous-meme en ajoutant le meme code pour les differentes formes? & nbsp eh Bien maintenant vous pouvez utiliser ce qui suit comme une classe de base pour toutes les formes.
=============== & nbsp & nbsp COMMENCER CODE & nbsp ======================
unite de la classe baseform
interface
utilise SysUtils, Classes, les Formes, Windows
type
& nbsp TBaseForm = class(TForm)
& nbsp protege
& nbsp & nbsp & nbsp fonction IsModal(): Boolean
& nbsp & nbsp & nbsp procedure KeyDown(var Key: Word Shift: TShiftState) remplacer
& nbsp & nbsp & nbsp procedure ShowError(E: Exception)
& nbsp & nbsp & nbsp fonction MsgBox(Msg: string
& ! & ! & ! & ! & nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer surcharge
& nbsp & nbsp & nbsp fonction MsgBox(Msg, MsgCaption: string
& ! & ! & ! & ! & nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer surcharge
& nbsp fin
la mise en œuvre
utilise des Commandes
{ TPipeCallBaseForm }
la fonction TBaseForm.MsgBox(Msg: string
& nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer
begin
& nbsp Resultat := MsgBox(Msg, Legende, uType)
fin
procedure TBaseForm.KeyDown(var Key: Word Shift: TShiftState)
begin
& nbsp herite
& nbsp si ((IsModal) et (GetActiveWindow() = Manche) et (Cle = VK_ESCAPE))
& nbsp & nbsp & nbsp ModalResult := mrCancel
fin
la fonction TBaseForm.MsgBox(Msg, MsgCaption: string
& nbsp uType: Entier = MB_OK ou MB_ICONSTOP): Integer
var
& nbsp FlashInfo: FLASHWINFO
begin
& nbsp si (GetForegroundWindow() <> Poignee)
& nbsp commencer
& nbsp & nbsp & nbsp (* si la fenetre n'est pas active en faire flash pour alerter l'utilisateur *)
& nbsp & nbsp & nbsp FillChar(FlashInfo, SizeOf(FLASHWINFO), 0)
& nbsp & nbsp & nbsp FlashInfo.cbSize := SizeOf(FLASHWINFO)
& nbsp & nbsp & nbsp FlashInfo.dwFlags := FLASHW_ALL ou FLASHW_TIMERNOFG
& nbsp & nbsp & nbsp FlashInfo.hwnd := Poignee
& nbsp & nbsp & nbsp FlashWindowEx(FlashInfo)
& nbsp fin
& nbsp Resultat := MessageBox(Poignee, PChar(Msg), PChar(Legende), uType)
fin
procedure TBaseForm.ShowError(E: Exception)
begin
& nbsp MsgBox(Format ('Erreur: %s'#13#13'Error Classe: %s', [E. Message, E. ClassName]))
fin
la fonction TBaseForm.IsModal: Boolean
begin
& nbsp Result := (fsModal dans FormState)
fin
a la fin.
=============== & nbsp & nbsp CODE de FIN & nbsp ======================
Pour utiliser cette forme de base, vous ajoutez simplement un 'la classe baseform' a la clause uses et modifier les formulaires de mise en œuvre a partir de:
& nbsp TfrmMyForm = class(TForm)
& nbsp TfrmMyForm = classe(TBaseForm)
Maintenant, chaque formule, vous aurez la possibilite de:
- Affichage d'une erreur d'une façon coherente,
- Afficher un MessageDlg tout en clignotant la fenetre si pas active.
- Retour mrCancel si l'utilisateur appuie sur la touche ECHAP sur une boîte de dialogue modale.
La classe baseform classe
By commentfaire
La classe baseform classe : Plusieurs milliers de conseils pour vous faciliter la vie.