[ joskom @ 13.03.2006. 08:47 ] @
Na Formi imam mnogo komponenata pa me zanima kako da napravim
proceduru za brisanje vrijednosti komponenata tj postavljanje na pocetne vrijednosti (0)
Ne mislim na dodjeljivanje vrijednosti pojedinacno nego ako je moguce to rijesiti nekakvom petljom

Ima li netko ideju
[ Srki_82 @ 13.03.2006. 09:31 ] @
Mozes to raditi na vise nacina.

Ako dinamicki kreiras komponente onda ih mozes pamtiti u nizu i onda jednostavno protrcis kroz niz i postavis vrednosti.

Mozes imati u nekom nizu imena komponenti koje zelis da resetujes. Sve komponente koje mogu da sadrze druge komponente imaju FindComponent funkciju koja na osnovu imena vraca komponentu.

Mozes da protrcis kroz Components niz koji imaju sve komponente koje mogu da sadrze druge komponente. Tako ces proci kroz sve komponente u objektu koji gledas.

Bitno je samo da znas kog je tipa komponeta koju hoces da menjas jer ti ove funkcije vracaju objekat tipa TComponent. Evo jednog nacina kako mozes da resetujes vrednost u zavisnosti od tipa komponente:
Code:
if (Komponenta is TEdit) then
  TEdit(Komponenta).Text := 'Prazno'
else
if (Komponenta is TComboBox) then
  TComboBox(Komponenat).ItemIndex := 2
else
.
.
.
[ joskom @ 13.03.2006. 09:53 ] @
A ako nisu dinamicki kreirane
[ ivanho @ 13.03.2006. 10:18 ] @
pa vec ti je dat odgovor,
kad ti neko da odgovor, procitaj ga kompletno...

Citat:

Mozes da protrcis kroz Components niz koji imaju sve komponente koje mogu da sadrze druge komponente. Tako ces proci kroz sve komponente u objektu koji gledas.


sazvakano:
napravis proceduru ciji je parametar tipa TWinControl
sa sledecim kodom

Code:

procedure Resetovanje(komp: TWinContol);
var
  intBrojac: integer;
  Komponeta: TControl;

for intBrojac:=0 to komp.ControlCount-1 do
  begin
     Komponenta:=komp.Controls[intBrojac];

     {ovde ubacujes kod po uzoru na onaj koji ti je dao Srki82}

  end;


Pozoves procedure, a kao parametat postavis tvoju forumu.
e sad, kad naidjes na koponentu tipa TPanel ili bilo koju drugu koja
moze da sadrzi druge komponente bitne za tebe - pozovi rekurzivno
istu proceduru, ali ovaj put ti je parametar ta komponenta.

Analogno umesto Controls i ContolCount mozes da stavis Components i
ComponentCount.

[Ovu poruku je menjao ivanho dana 13.03.2006. u 11:22 GMT+1]
[ joskom @ 13.03.2006. 10:40 ] @
Skuzio
Hvala