Moras da kreiras instancu klase TIdTcpClient pre koriscenja:
Code:
Var
m: array[1..20] of TIdTcpClient;
l: integer;
a on button click:
inc(l);
// Sada kreiras instancu. Umesto ??? treba uneti NIL ili Self u zavisnosti
// kako zelis da se radi unistavanje instanci.
m[l] := TIdTcpClient.Create(???);
m[l].host := 'hostic_neki';
m[l].port := 1111;
m[l].connect;
end.
Ovo sto si ti radio je neispravno. Direktno koriscenje promenjive vazi samo za izvorne tipove podataka (integer, char, string...) i za promenjive tipa record i object (koji se inace vise i ne koristi, tu je samo zbog kompatibilnosti). Ko nizova vazi slicno: ukoliko je niz promenjivih osnovnog tipa moze direktno koriscenje, ukoliko nije nista od toga.
Ako je A : TIdTcpClient, onda je A promenjiva koja pokazuje na adresu instance te klase u memoriji. Samo sto tu instancu treba kreirati pre koriscenja
A := TIdTcpClient.Create(...) ;
i unistiti je kada vise nije potrebna
A.Free;
Kada komponentu stavis na formu ili data module onda se taj modul ili forma brinu o kreiranju tih komponenti, kao i o njihovom unistavanju. Prakticno, ta npr. forma radi sledece prilikom svog kreiranja:
A := TIdTcpClient.Create(Self);
i posle
A.Free;
Ovo ti je samo povrsno objasnjenje, o objektima u Delphi-u moze da ze pise i pise, tako da je najbolje da sto pre krenes u ucenje o njima, jer bez toga se nista ozbiljno ne moze uraditi.