Odwołanie do obiektów

0

Mam procedurę

procedure coin;
var
i : byte;
obrazek:array[1..10] of timage;
BEGIN
for i := 1 to 10 do
Begin
obrazek[i]:=TImage.Create(Form1);
obrazek[i].Left:=random(650);
obrazek[i].Top:=10;
obrazek[i].Height:=31;
obrazek[i].Width:=25;
obrazek[i].Visible:=true;
obrazek[i].Parent:=Form1;
obrazek[i].Transparent := true;
obrazek[i].Picture.LoadFromFile('Tekstury\\Coins\\coin.bmp');
end;
END;

Tworzącą 10 obrazków, i teraz chciałbym się do tych obiektów odwołać z innym module, jak to zrobić? Bo samo "obrazek[i]" ani "form1.obrazek[i]" są nie znane.

0

W menu Delphi: File -> Use unit... -> wybierz unit innego modułu to wtedy będzie Ci działać Form1.Obrazek[I]

0

Mówi mi że jest już we wszystkich unitach używany...

0

Powinienem jeszcze gdzieś umieścić jakieś dodatkowe deklaracje ?

0

Rozdział 2
trzeba poczytać

0

Czyli mylnie mi się wydawało że jak stworzę obiekt to on i tak będzie istniał dopóki go nie zniszczę?

0

nie - dobrze Ci się wydaje, ale po wyjściu z tej procedury (coin) tracisz "namiary" (tablicę) na te obiekty i masz piękny Memory Leak.

0

Jest jeszcze 1 sposób (ale dzieci nie róbcie tego w domu): w pętli procedury coin robisz:

obrazek[i].Name:='Coin'+inttostr(i);

A następnie gdzieś w kodzie np

form1.FindComponent('Coin4') as TImage

1 użytkowników online, w tym zalogowanych: 0, gości: 1