Kako napuniti ARRAY brojeva?

Kako napuniti ARRAY brojeva?

offline
  • 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.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Daj kod (code) da vidim sta si kako deklarisao.



offline
  • srdjos  Male
  • 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 Smile
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 Smile

ovo sam napisao napamet, fali koda i
ima neka greska, treba proveravati da li je
text u edit boxu u stvari broj

offline
  • Emil Beli
  • 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

offline
  • 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;

offline
  • 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.

offline
  • srdjos  Male
  • 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

offline
  • 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š.

Ko je trenutno na forumu
 

Ukupno su 787 korisnika na forumu :: 2 registrovanih, 2 sakrivenih i 783 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: nazgul75, nemkea71