Bonjour à tous,
Delphi 7 Enterprise.
Je cherche à regrouper dans une unité unique et séparé différents événements déclenchés par un PopupMenu.
Ce popup menu j'aimerai l'intégrer ensuite dans différents modéles de frames de mon appli.
Dans mon unité commune, j'ai par exemple une procédure me permettant de changer la font de mon RichEdit
Dans une de mes frames (fichier unité différent), je place un richedit, et je spéficie la propriété PopupMenu, en allant rechercher le popupmenu de mon unité UCommon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 procedure TFCommon.SetFont_RE(sender:TObject); var popup: TPopupMenu; component: TComponent; frame:TComponent; pc:integer; begin if Sender is TMenuItem then begin popup:= TMenuItem(Sender).GetParentComponent as TPopupMenu; component:= popup.PopupComponent; frame:=component.GetParentComponent; for PC:=0 to frame.ComponentCount-1 do begin if (frame.Components[PC] is TRichEdit) then if TRichEdit(frame.Components[PC]).Name=component.Name then begin ChangerLaFont_RE(TRichEdit(frame.Components[PC])); exit; end; end; end; end;
Ce qui ne marche pas dans la procédure SetFont_RE ci-dessus, c'est la boucle de recherche du composant Richedit dans ma frame.
Lorsque je fais un showmessage(component.name) il m'affiche correctement le nom du RichEdit de ma frame.
Lorsque je recherche le parent du richedit : j'obtiens bien le Panel de ma frame.
Ma question est donc : comment rendre générique la boucle suivante, pour que je puisse l'appeler depuis n'importe quelles frames ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for PC:=0 to frame.ComponentCount-1 do begin if (frame.Components[PC] is TRichEdit) then if TRichEdit(frame.Components[PC]).Name=component.Name then begin ChangerLaFont_RE(TRichEdit(frame.Components[PC])); exit; end; end;
Merci de votre aide
@
Partager