2017-10-05 4 views
0

Fondamentalement, j'ai 8 panneaux et je veux leur assigner une image en utilisant une boucle, pour cela j'ai utilisé une variable TComponent et une image que je crée pendant l'exécution. Mais je suis incapable de trouver un moyen d'assigner cette image à un parent en utilisant cette chaîne ('pnlDisplay' + inttostr (i)). Donc mon code ressemble à ceci:Comment affecter un parent à un objet en utilisant uniquement le nom d'objet parent

var 
    imgPanel : TImage; 
    cPanel : TComponent; 
begin 
    for i := 1 to 8 do 
    begin 
     cPanel := FindComponent('pnlDisplay' + inttostr(i)); 
     imgPanel := TImage.Create(cPanel); 

     imgPanel.Parent := cPanel; //Here is my problem 

     imgPanel.Picture.LoadFromFile('Pic' + inttostr(i) + '.jpg'); 
     imgPanel.Visible := True; 
    end; 
end 

Toute aide ou même une autre façon d'y parvenir serait utile.

Répondre

1

FindComponent() renvoie TComponent, tandis que la propriété Parent attend un TWinControl à la place. En supposant que FindComponent() renvoie le composant correct, tapez-le simplement:

imgPanel.Parent := TWinControl(cPanel); 
+0

Merci beaucoup! Ça fonctionne maintenant –