[ martinj @ 19.12.2007. 10:26 ] @
Vec neko vreme pokusavam da resim problem ali ne ide... Imam na formi par stotina TLabel komponenti koje u odredjenom slucaju treba da dobiju odredjenu boju...

Primer.. Ako je ID polja u tabeli 1 i vrednost True, onda Label1 treba da bude plava. Ako je vrednost False treba da bude zelena. Za ID 2 vrednost dobija Label2, za ID 3 vrednost ide u Label3... I tako do negde 500...
Da je manji broj labela pisao bih CASE konstrukciju... Ovako, treba mi neko drugo resenje...

Unapred hvala
[ NemesisMMX @ 19.12.2007. 10:59 ] @
Prvo, mislim da bi to trebalo da resis na neki elegantniji nacin a ne sa 500 labela koji se zovu label1..500 :)
ali ako vec zelis evo kako:

Code:

procedure TFormMain.NewColorForLabel(ID: Integer; NewColor: TColor);
var
c : TComponent;
begin
 c := FindComponent('label'+inttostr(ID));
 if c is TLabel  then
 TLabel(c).Color :=  NewColor;
end;


TFormMain je forma na kojoj su ti ti labeli.
Nadam se da ce pomoci.
Poz.
[ martinj @ 19.12.2007. 11:12 ] @
Ne postoji elegantniji nacin. Svasta nesto sam pokusavao i ovo je jedino resenje.
Kod radi.. Hvala :)
[ savkic @ 19.12.2007. 11:34 ] @
> Ne postoji elegantniji nacin. Svasta nesto sam pokusavao i ovo je jedino resenje.

Deklariši niz (array of TLabel ili array[1..500] of TLabel) u koji ćeš ubaciti sve TLabele tako da indeks u nizu odgovara broju labele. Kada treba da nešto menjaš, pristupaš članu niza po datom broju i menjaš.
[ martinj @ 21.12.2007. 12:24 ] @
Ma mora ovako. komponente treba da imaju odredjeni raspored na formi..
hvala na odgovorima
[ savkic @ 21.12.2007. 15:20 ] @
> Ma mora ovako. komponente treba da imaju odredjeni raspored na formi..

Ti ih rasporedi kako želiš a u OnCreate evemti forme ih ubaci u niz.

[Ovu poruku je menjao savkic dana 21.12.2007. u 21:01 GMT+1]
[ Milan Milosevic @ 22.12.2007. 11:13 ] @
Ma samo preko niza array ostali nacini su glupost.
A, ako ti to nevalja onda kako ti volis.