Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrere Eingabefelder in ein array auslesen (https://www.delphipraxis.net/10978-mehrere-eingabefelder-ein-array-auslesen.html)

0_0TWOFACE0_0 28. Okt 2003 22:13


Mehrere Eingabefelder in ein array auslesen
 
Hallo

Ich habe folgende Frage:

Ich möchte die eingegebenen Daten aus ca. 90 Eingabefeldern nach dem Click auf einen Button in ein Array of integer speichern und die Werte dann in einer Listbox ausgeben.
Ich weiss aber nicht wie man z.B. mit ner for-Schleife die Inhalte aller Eingabefelder ausliest.
Das alles müsste ja dann irgendwie so aussehen:
for i:=1 to 90 do begin
feld[i]:=strtoint(editi.text);
end;

Problem is eben nur wie ich mit Hilfe der Variablen i jedes einzelne Eingabefeld ansteuern kann.

Ich bedanke mich jetzt schon mal für eure Mühe! :thuimb: :hello:

MfG 0_0TWOFACE0_0

Luckie 28. Okt 2003 22:16

Re: Mehrere Eingabefelder in ein array auslesen
 
Hier im Forum suchenFindComponent
Oder: Hier findet du ein Demo zu FindComponent:
http://www.luckie-online.de/files/demos/

franz77 28. Okt 2003 22:28

Re: Mehrere Eingabefelder in ein array auslesen
 
Hallo!

Hier nochwas anstelle von Findcomponent:

evtl. so:
Delphi-Quellcode:
procedure Form1.MachWasMitAllenTEditFeldern;
var
  i: integer;
  t: TEdit;
begin
  for i:= 0 to Form1.ComponentCount - 1 do
  begin
    if Form1.Components[i].ClassName = 'TEdit' then
    begin
      t:= TEdit ( Form1.Components[i] );
      // Zugriff auf edit feld jetzt mit
      // t.<attribut o. methode>
    end;
  end;
end;

Du kannst dann noch Komponenten des gleichen Typs entweder über die Eigenschaft Name oder mit Hilfe der Eigenschft Tag unterscheiden.

Gruss, Franz.

0_0TWOFACE0_0 29. Okt 2003 18:44

Re: Mehrere Eingabefelder in ein array auslesen
 
hi

also ich habs jetzt so gemacht:

Delphi-Quellcode:
 for i := 1 to 85 {Anzahl Edits} do
  begin
    feld[i]:=strtoint(TEdit(FindComponent('Edit'+IntToStr(i))).text)
  end;
aber beim Ausführen es erscheint eine Fehlermeldung:

Projekt ...exe raised exception class EConvertError with message ''' is not a valid integervalue'. Process stopped. Use Step or Run to continue.

also muss es ja was mit der Umwandlung von string in integer zu tun haben!!??

oder???

0_0TWOFACE0_0

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

himitsu 29. Okt 2003 18:55

Re: Mehrere Eingabefelder in ein array auslesen
 
Da steht wohl in mindestens einem deiner Edits keine reine Zahl (Integer).

Eines der Edit's ist leer
Zitat:

with message ''' is not a valid
"with message ''xxx' is not a valid"
xxx = Text im Edit


Da hier gibt 0 zurück, wenn kein Text im Edit-Feld ist.
Es wird allerdings auch eine 0 zurückgegeben, wenn ein Fehler vorhanden ist (Twext ist keine ganze Zahl).
Delphi-Quellcode:
For i := 1 to 85 do
  Feld[i] := StrToIntDef(Trim(TEdit(FindComponent('Edit' + IntToStr(i))).Text), 0);
Trim( ... ) entfernt alle führenden und nachfolgenden Leerzeichen. StrToInt mekert sobald etwas anderes ausser Zahlen vorhanden ist, sei es auch nur ein Leerzeichen. ("123 ")

0_0TWOFACE0_0 29. Okt 2003 20:09

Re: Mehrere Eingabefelder in ein array auslesen
 
hi

ok das hat wunderbar gefunzt
es sei euch allen gedankt

MfG 0_0TWOFACE0_0

:thuimb: :thuimb: :thuimb: :spin: :spin:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz