Le sujet n’est pas de créer un composant de façon dynamique, mais juste de construire et de retrouver son nom par programmation …
Par exemple :
- J’ai 4 RichEdit nommé RichEdit1, RichEdit2, RichEdit3,et RichEdit4
- et j’aimerais changer la taille de la Fonte générale en une seule passe
Je peux faire :
RichEdit1.Font.Size := 14; RichEdit2.Font.Size := 14; RichEdit3.Font.Size := 14; RichEdit4.Font.Size := 14;
- Mais ça me fait écrire 4 fois la même chose à 1 chiffre près, et si je rajoute encore 4 RichEdit, je devrais tout recommencer 4 fois de plus…
Je rêve donc d’une boucle du genre :
For I := 1 to 4 do RichEdit + IntToStr( I ) . Font.Size := 14 ;
Mais écrit comme ça va planter gravissime.
L’instruction Magique = FindComponent
Comme je ne peux pas créer de toute pièce le nom d’un composant qui existe déjà, je vais tout simplement lancer une recherche sur son nom : FindComponent
var RichEdit : TRichEdit; i : integer; begin for i := 1 to 4 do Begin Richedit := TRichEdit( FindComponent( format ('RichEdit%d', [i]))); RichEdit.Font.Size := 14; End; end;
Si je rajoute 4 richedit il me suffira alors d’écrire :
for i := 1 to 8 do