Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pristupanje jednom od mnogo objekata istog tipa preko indexa?

  • 8 odgovora
  • 4.314 pregleda

Najnovija ↓

Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 25.08.2008. u 21:30 · pre 221 mesec #3
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;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 25.08.2008. u 21:40 · pre 221 mesec #4
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.
Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 26.08.2008. u 01:35 · pre 221 mesec #5
> 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.

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 26.08.2008. u 20:53 · pre 221 mesec #6
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.
Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 26.08.2008. u 21:10 · pre 221 mesec #7
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;
}


Re: Pristupanje jednom od mnogo objekata istog tipa preko indexa? 27.08.2008. u 22:15 · pre 221 mesec #8
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme