[ dbabic @ 17.03.2005. 19:34 ] @
Moze li neko da mi razjasni u čemu je problem?

Na formi se nalazi jedno dugme i jedan EditBox
U EditBox-u upisujem neki broj i klikom na dugme mi se kreira i na formi prikazuje toliko
objekata tipa TCheckBox.
U dinamički niz želim da upisem adresu svakog od novokreiranih objekata kako bi kasnije mogao da promenljivoj tipa TCheckBox dodelim adresu iz niza i na taj način pristupim nekoj od osobina CheckBoxa.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ChkBox:TCheckBox;
i:integer;
ChkPok:^TCheckBox; //Ponter na objekat TCheckBox
NizChkPok:Array of Pointer; //Dinamicki niz

procedure KreirajChkBox;
begin
ChkBox:=TCheckBox.create(Form1);
ChkBox.parent:=Form1;
ChkBox.name:='ChkBox'+IntToStr(i); //dodela imena novom CheckBox-u
ChkBox.Left:=100; //Sminka za prikaz na formi
ChkBox.Top:=50+i*15 //Sminka za prikaz na formi
end;

begin
i:=0;
Repeat
KreirajChkBox;
SetLength(NizChkPok, StrToInt(Edit1.text)); //Inicijalizacija duzine dinamickog niza
ChkPok:=@ChkBox; //Dodeljivanje adrese kreiranog objekta - pointeru ChkPok
NizChkPok:=ChkPok; //Smestanje adrese u niz
inc(i)
until i=strtoInt(Edit1.text);
end

Problem se nalazi u redu ChkPok:=@ChkBox.
Svaki put se kreira nova instanca objekta TCheckBox, ali pokazivac stalno pokazuje na istu adresu?!?
[ Srki_82 @ 17.03.2005. 21:01 ] @
Nadam se da si ovako nesto hteo. Nema nikakve provere gresaka pa gledaj da unosis podatke kako treba :)
[ dbabic @ 17.03.2005. 22:01 ] @
Misterija oko adrese objekta
Citat:
Srki_82: Nadam se da si ovako nesto hteo. Nema nikakve provere gresaka pa gledaj da unosis podatke kako treba :)


Sta mislis pod tim Nema nikakve provere gresaka...
P.S. Hvala ti zemljak. Radi!
[ Srki_82 @ 17.03.2005. 23:00 ] @
Pa ako uneses u edit neki text umesto broja ili ako pokusas da menjas property-e za 10. kontrolu, a napravio si ih samo 5. Na te greske sam mislio. Kad radis sa klasama u Delphi-u one su vec pointeri. Nema potrebe da pravis pointer na klasu (npr ^TCheckBox).