[ Nemanja_90 @ 25.08.2008. 18:08 ] @
Kako u delphiju da napravim mnogo objekata istog tipa kojima mogu da pristupam preko indexa kao sto pristupam clanovima niza ili matrica i da li je to uopste moguce.
[ Predrag Supurovic @ 25.08.2008. 18:20 ] @
Kada napravis objekat, upises njegovu adresu kao pointer u TList.
[ savkic @ 25.08.2008. 20:30 ] @
Ako su u pitanju klase onda pored TList možeš koristiti i TObjectList koji ima neke dodatne mogucnosti koje ti mogu biti interesantne.

Code:


var
  List: TObjectList; // TList;
  Temp: TStrings;
  i: Integer;
begin
  List := TObjectList.Create(True); // Pogledaj u helpu razliku izmedju kreiranje sa True i False
  for i := 0 to 1000 do
  begin
    Temp := TStringList.Create;
    List.Add(Temp);
  end;

  List.Free; // Ako koristiš TList onda moraš sam osloboditi objekte
end;
[ Nemanja_90 @ 25.08.2008. 20:40 ] @
Hvala vam na odgovorima ali mi trenutno bas ne koriste jer sam danas reinstalirao windows a ne mogu da nadjem instalaciju za delphi. Inace nisam ni razumeo bas kako to da uradim(jer jos nisam radio u delphiju vec samo u paskalu a o delphiju sam samo malo citao-ovo je u stvari prvi problem na koji sam naisao vec u planiranju algoritma za prvi program u delphiju a nisam uspeo da nadjem nista o tome u helpu) ali kad se malo nacitam o delphiju verovatno cu skapirati.

Hvala vam u svakom slucaju, procitacu ovo ponovo kad budem imao dovoljno znanja da isto i shvatim i kad nadjem tu instalaciju.
[ savkic @ 26.08.2008. 00:35 ] @
> jer sam danas reinstalirao windows a ne mogu da nadjem instalaciju za delphi.

Možeš da skineš i probaš besplatan Turbo Delphi (www.turboexplorer.com), nabavi i neku knjigu i možeš početi sa učenjem.

[ Nemanja_90 @ 26.08.2008. 19:53 ] @
Hvala.

Inace, ne znam da li sam bio dovoljno jasan(verovatno nisam).
Ja sam mislio da napravim nesto kao sudoku ili minesweeper gde ima mnogo objekata(dugmad,textbox-ovi,...) koji bi svi trebali da koriste istu proceduru. Npr, ako neko klikne na neko polje u minesweeperu, koristi se procedura za to polje i klik na njega a ako klikne na neko drugo, onda se koristi nova procedura koja se odnosi na ovo polje i klik na njega a identicna je kao i predhodna samo je drugi naziv dugmeta. Gledao sam pre da li postoji neka tabela ili nesto slicno koja bi funkcionisala ovako i tako zamenila to sto mi treba ali nisam nasao.
[ X Files @ 26.08.2008. 20:10 ] @
Implementacija semantike u nekoj logickoj igri moze se realizovati na puno raznih nacina, a ja necu o tome ovde nista reci.

Samo cu dati jedan od odgovora na tvoje pitanje, bez ulaska u raspravu da li je tako najbolje.

Recimo, vecina objekata u VCL-u ima Tag osobinu, koja je zapravo obican Integer. Svakom objektu na formi mozes dodeliti neki drugi broj a kasnije u kodu napraviti zajednicki (jedan!) OnClick dogadjaj, koji moze imati sledecu strukturu>\:

Code:

// PSEUDO, proveri sintaksu, Pascal mi je izvetrio...
OnClick( Sender: TObject )
{
   case Sender.Tag of 
      0: nesto := '1'; 
      1: nesto := '2'; 
      2: nesto := '3; 
   end;
}


[ Rapaic Rajko @ 27.08.2008. 21:15 ] @
Aha, kapiram sta ti treba. Pa mozes da radis i sa obicnim array-om, evo ovako nesto:

Code:

type
  TButtonTabela: array[1..10, 1..10] of TButton;
var
  Tabela: TButtonTabela;
  i, j: Integer;
begin
  for i := 1 to 10 do begin
    for j := 1 to 10 do begin 
      Tabela[i, j] := TButton.Create(nil);
      Tabela[i, j].Parent := self;  // ili neka druga kontrola, recimo neki Panel
     // Tabela[i, j].SetBounds(....) // ovde dodje neki kod za pozicioniranje dugmeta
    end;
  end;  
end;


A u nekom OnClick handler-u, mozes glatko da proveris koji je button u pitanju prostim uslovom:

Code:

procedure TForm1.Button1Click(Sender: TObject);
  if Sender = Tabela[i, j] then ... // ovako proveravas koji je (ili nije) button u pitanju     
    // ...
end;


Mada, ovde cim izadjes iz procedure gubis pointere na kreirane TButton-e, odnosno varijablu Tabela moras deklarisati negde izvan procedure, kao globalnu, ili kao private field od forme (TForm) na kojoj sve ovo radis.

Znas sta, iz tvojih prethodnih postova vidim da ni pola ovoga neces razumeti :) . Nema veze, zapni sa ucenjem, a odgovor na pitanje "da li moze da se pristupa objektima preko indeksa" glasi MOZE. Kako budes napredovao, tako ce ti i gornji kod biti sve jasniji...

Rajko
[ Nemanja_90 @ 28.08.2008. 01:57 ] @
Zapravo 2 predhodna posta su mi veoma jasna, jos samo da probam i u praksi. Hvala vam.