g trouvé le pb en fait ca venait de la création de mes TImage en effet
ils etaient créés sur la fiche et non sur le TTabsheet ce qui fait que
la valeur ComponentCount du TTabsheet etait éronné...
Un exemple ci-dessous, utilisant un TPageControl, contenant autant de
TTabSheet que tu veux, chacun contenant un TPanel parent d'une TImage.
Un Memo sert à recueillir les données.
Et un bouton pour cliquer...
C'est juste pour démontrer qu'on peut récupérer les propriétés de
chaque image, en fonction du TabSheet (et du Panel) dont elle est
l'enfant.
Il serait sans doute plus élégant et plus rapide de lister les
composants à partir des Images contenues dans le Form, puis de remonter
vers leur parent et "grand parent".
Mais il faudrait différencier les Images concernées d'autres images éventuelles, par un Tag par exemple.
procedure TForm1.Button1Click(Sender: TObject);
var i, j, k: Integer;
{ci-dessous 3 variables pour la clarté du code, non indispensables}
ATabSheet: TTabSheet;
APanel: TPanel;
AnImage: TImage;
begin
for i := 0 to ComponentCount -1 do
if Components[i] is TTabSheet then
begin
ATabSheet := TTabSheet(Components[i]);
// on peut récupérer les propriétés de ce TabSheet
Memo1.Lines.Add(ATabSheet.Caption);
for j := 0 to ComponentCount -1 do
if Components[j] is TPanel then
if TPanel(Components[j]).Parent = ATabSheet then
begin
APanel := TPanel(Components[j]);
// on peut récupérer les propriétés de ce Panel
Memo1.Lines.Add(APanel.Name);
for k := 0 to ComponentCount -1 do
if Components[k] is TImage then
if TImage(Components[k]).Parent = TPanel(Components[j]) then
begin
AnImage := TImage(Components[k]);
// on peut récupérer les propriétés de cette Image
Merci Japee g un pb quand mm quand j'execute le code genre un truc mystic ...
par exemple pour la boucle for j := 0 to ComponentCount -1 do
he bien j'ai le ComponentCount egal a 40 mais je
rentre jamais dans la boucle c ouf je sais mais honnetement je comprend
pas ca viendrai d'ou a ton avis?