Poslao: 31 Mar 2007 14:11
|
offline
- vladisha
- Novi MyCity građanin
- Pridružio: 24 Maj 2005
- Poruke: 11
|
Problem je sledeći:
Imam 20 edit polja i niz(array) integera od, naravno, 20 članova, gde svaki član niza treba da pokupi sadržaj odgovarajućeg edit polja.
Kako datu akciju najlakše da uradim, tj. da ne idem polje po polje nego nekom petljom? hvala
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 31 Mar 2007 14:25
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Daj kod (code) da vidim sta si kako deklarisao.
|
|
|
|
Poslao: 31 Mar 2007 23:13
|
offline
- srdjos
- Zaslužni građanin
- Pridružio: 27 Sep 2005
- Poruke: 678
|
ako nisi familijaran sa nizovima,
uradi to preko record-a
trebace ti niz u svakom slucaju
ali simple
ako mene pitas, bolje uradi napravi neki record
posto treba da identifikujes koji edit box ima koju
vrednost u nizu
napravis record
definisi promenjivu tog record tipa
recimo ovako:
type
TNesto=record
ime: String;
vrednost: Integer;
end;
var
nizEditBoxova: array of TNesto;
pa dalje podesis velicinu to niza:
SetLenght(nizEditBoxova, 19)
naravno, ovo gore moze dinamicki dodeljivati
pa dalje sa petljom proletis sve edit boxove na
formi i dodelis im vrednost
ne zaboravi na broj clana u nizu:
var
I: Integer;
begin
for i:=0 to fForma.Controls.Count-1 do begin
if (fForma.Controls[i] is TEdit) then begin
if fForma.Controls[i] as TEdit).Text<>'' then begin
nizEditBoxova[i].ime := (fForma.Controls[i] as TEdit).Name;
nizEditBoxova[i].vrednost := StrToInt((fForma.Controls[i] as TEdit).Text);
end;
end;
end;
end;
naravno, ima gomila mogucih resenja
verovatno ce @Beli da kaze svoje
ovo sam napisao napamet, fali koda i
ima neka greska, treba proveravati da li je
text u edit boxu u stvari broj
|
|
|
|
Poslao: 01 Apr 2007 01:46
|
offline
- beli0135
- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Nece Beli nista da kaze doklegod ne stavi code...
Desava se cesto da clan koji bas nije iskusan, postavi pitanje pogresno.
Prvo code, pa onda prichamo
|
|
|
|
Poslao: 01 Apr 2007 22:46
|
offline
- loshmi_sr
- Građanin
- Pridružio: 08 Jan 2007
- Poruke: 279
- Gde živiš: Srbija
|
Trčaću pred rudu pre nego što vladisha detaljnije približi problem.
a) Nisi rekao zašto ti treba baš u niz, ali možda je za tebe najbolje rešenje da vrednosti iz TEdit kontrola pokupiš u jednu TStringList -u (delphi ima odličnu podršku za nju).
var i : Integer;
Lista: TStringList;
begin
Lista:= TStringList.Create;
try
try
for i := 0 to ComponentCount-1 do
begin
if (Components[i] is TEdit) then
Lista.Add((Components[i] as TEdit).Text);
end;
finally
ListBox1.Items.AddStrings(Lista);
Lista.Free
end;
except
on E: Exception do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
b) ili ako želiš vrednosti prikazati, npr. u TListBox - u:
...
var i : Integer;
begin
try
for i := 0 to ComponentCount-1 do
begin
if (Components[i] is TEdit) then
ListBox1.Items.Add((Components[i] as TEdit).Text)
end;
except
on E: Exception do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
|
|
|
|
Poslao: 02 Apr 2007 08:28
|
offline
- vladisha
- Novi MyCity građanin
- Pridružio: 24 Maj 2005
- Poruke: 11
|
Ljudi, ja se stvarno izvinjavam, ali juce nisam imao pristup net-u pa sam tek sad video odgovore.
Inace, problem sam resio i evo koda koji sam sad iz glave napisao da pokazem kako sam uradio.
procedure TMainForm.Button1Click(Sender: TObject);
var
I: Integer;
Niz: array [1 .. 32] of Integer;
Comp: TComponent;
begin
for I := 1 to 32 do
begin
Comp := FindComponent('Edit' + IntToStr(I));
Niz[I] := StrToInt(TEdit(Comp).Text);
end;
end;
Znaci imao sam niz Integer-a koji trebaju da drze, u ovom slucaju, 32 vrednosti koje se upisuju u 32 Edit polja.
Hvala na odgovorima i voleo bih neki komentar na ovo moje resenje.
|
|
|
|
Poslao: 02 Apr 2007 09:02
|
offline
- srdjos
- Zaslužni građanin
- Pridružio: 27 Sep 2005
- Poruke: 678
|
ok, i sta nameravas s tim nizom
kad ne znas cemu sluzi koji clan niza
srdjos
|
|
|
|
Poslao: 02 Apr 2007 11:42
|
offline
- loshmi_sr
- Građanin
- Pridružio: 08 Jan 2007
- Poruke: 279
- Gde živiš: Srbija
|
Mislim da ti je moje rešenje praktičnije, jer nije ograničeno dužinom niza, nego se lista kreira na osnovu brojaa TEdita na TForm, koji može biti promenljiv, može se sortirati, izbaciti duplirani članovi, etc. Naravno, primer koji sam dao sa TStringList -om se može i lepše napisati, ali to bi već trebao ti malo istražiti ako se zainteresuješ.
|
|
|
|