Delphi : Construire le Nom d’un composant à partir d’une Variable

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

 

Laisser un commentaire