ciklusban hivatkozás objektumok nevére

Sziasztok!
A kérdésem a következő:
a formon van 10 panel a neveik: p1, p2, p3 ... p10
egy ciklusban szeretnék rájuk hivatkozni úgy, hogy a "p" betű után a ciklusváltozó éréke adja a panel nevét.
Pl: ha i=3 akkor a "p3" nevű panel bizonyos tulajdonságait tudjam módosítani.
Remélem nagyrészt érthető a leírásom.
A válaszokat előre is köszönöm!
Sylord

Objektumnevek újra

Helló Mindenki!

Nekem ugyanez a problémám, ciklusban szeretnék hivatkozni Timage objektumokra, csak itt nem 10 objektum van, hanem 50-70 db/tabsheet. Sajna a futásidőben létrehozás kiesett mert egyedi ábrák vannak kirakva előre (LED mátrixok), amiknek az elhelyezését nem nagyon lehet ciklusban létrehozni (vagy túl sok kóddal). A tömb jó megoldás lenne ha a feltöltése a már létező, szerkesztő módban létrehozott image nevekkel menne ciklusban (image01,image02,stb.).

Ha valakinek lenne ötlete, előre is köszönöm!

Üdv:vizor

hi Erre a két megoldás van

hi
Erre a két megoldás van az első a neked könnyebb a másik a programozói oldalról nézve szebb.

Az első
A ciklusban feltétlhez kötöd hogy éppen mit csinálsz:
pl: if (valtozo=3)
begin
p3...
end;
select valtozo of
begin
...
case 3:p3...
...
end;
vagy a legjobb:
az objektumokat egy tömbben tárolod el.
labelekre példa: tomb:array [1..9] of tlabel;
majd ezeket magad hozod létre: tomb[1]:=TLBEL.CREATE;
stb.
a ciklusban pedig a tomb[ciklusvaltozo] segítségével éred el.
A példák hibásak az azért van mert nem sokat foglakoztam mostanában delphivel. de a logika az jó és érvényes.

,,Mondottam ember: Küzdj és bízva bízzál"

eddig remek ))

Köszi szépen a gyors válasz, a második variáció nekem is jobban tetszett, viszont ezzel kapcsolatban lenne még egy kérdésem;
létrehozom a tömb elemeit így:

for i:=1 to 10 do tomb[i]:=Tlabel.create(form1); (a form1 az valami Aowner)

minden tulajdonságát tudom meg tudom adni de nem látszik a formon, miért?

Mert meg kell adni melyik

Mert meg kell adni melyik objektumon (jelen esetben form-on)látszódjon:
tomb[i].parent:=form1;
Üdv.: Totó

Köszönöm!

Köszönöm! MINDKETTŐTÖKNEK!

Új megoldás

Sziasztok!

Megoldódott a probléma, leírom hátha jó lesz még valakinek. A probléma: olyan komponensekre hivatkozás ciklusban, amiket szerkesztési időben hozunk létre, nem futás közben.

var
imagearray:array[1..128] of timage;

// imagekra van szükségünk, amik egy panelon vannak, más egyéb komponensekkel együtt

i:=0;
for j:=0 to form1.panel1.controlcount-1 do // a panel1 összes controlján végigmegyünk
begin
if form1.panel1.controls[j] is timage then // ha ez a control egy image akkor felvesszük
begin
inc(i);
imagearray[i]:=form1.panel1.controls[j] as timage; //átalakítjuk a Tcontrol-t Timage-vá és berakhatjuk a tömbbe
end;
end;

Remélem hasznos lesz másnak is.

Üdv:vizor

Könyvajánló

Programozzunk Turbo Delphi Rendszerben