Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Editfelder in einer For-Schleife (https://www.delphipraxis.net/185874-editfelder-einer-schleife.html)

Luckner 14. Jul 2015 11:28

Editfelder in einer For-Schleife
 
Hallo, ich habe bestimtt eine sehr triviale Frage, aber ich komm nicht auf die Lösung. Habe einige Editfelder mit den Namen EDIT1, EDIT2, EDIT3 usw. Würde gerne den Text der Felder hintereinander auslesen.
For i = 1 to Max do
Variable + IntToStr(i) := EDIT + IntToStr(i)
usw. funktioniert nicht.

Könnte mir Jemand auf die Sprünge helfen?
Danke.

stahli 14. Jul 2015 11:33

AW: Editfelder in einer For-Schleife
 
Entweder Du fügst die Edits erst mal Stück für Stück in eine TList ein und kannst diese dann jederzeit durchlaufen oder Du benutzt FindComponent.

Ach so, und für
Delphi-Quellcode:
Variable + IntToStr(i)
bietet sich die Nutzung eines Arrays oder auch einer Liste an.

Luckner 14. Jul 2015 11:48

AW: Editfelder in einer For-Schleife
 
würde das auch so funktionieren?
s1 : String;
var : integer
for i = 1 to max do
s1 := 'Edit'+ StrToInt(i);
Var := StrToInt(s1.text);
usw.

bcvs 14. Jul 2015 11:53

AW: Editfelder in einer For-Schleife
 
Probiers halt aus.
Damit kannst du deine Frage schon selbst beantworten.

TRomano 14. Jul 2015 11:55

AW: Editfelder in einer For-Schleife
 
Nein.
Was Stahli meinte war folgender Art:

Delphi-Quellcode:
var i    : integer;
    sText : string;
    oEdit : TEdit;
begin
  sText := '';
  for i:=1 to {Anzahl Edit´s} do begin
    oEdit := FindComponent('Edit' + IntToStr(i)) as TEdit;
    if (oEdit <> nil) then sText := sText + oEdit.Text;
  end;
end;

TRomano 14. Jul 2015 11:59

AW: Editfelder in einer For-Schleife
 
Oder auch ...

Delphi-Quellcode:
type TArrayEdits : TArray<TEdit>;

var aEdits : TArrayEdits;
    oEdit : TEdit;
    sText : string;
begin
  // vielleicht auch im FormCreate-Event erzeugen
  aEdit := TArrayEdits.Create(EDIT1,EDIT2,EDIT3,EDIT4 {...});
  for oEdit in aEdits do sText := sText + oEdit.Text;
end;

Luckner 14. Jul 2015 12:04

AW: Editfelder in einer For-Schleife
 
Danke TRomano,
habe jetzt verstanden.
Gruß, Luckner

baumina 14. Jul 2015 12:08

AW: Editfelder in einer For-Schleife
 
Bei einer Kompilersprache wie Delphi kann man im Gegensatz zu einer Interpretersprache keine Variablennamen zur Laufzeit zusammenbasteln.

frankyboy1974 14. Jul 2015 12:15

AW: Editfelder in einer For-Schleife
 
Hallo,

ob eine Programmiersprache kompiliert oder interpretiert wird, ist keine Eigenschaft der Programmiersprache.

mfg

frank

Luckner 16. Jul 2015 10:29

AW: Editfelder in einer For-Schleife
 
Hallo TRomano,

angelehnt an Deinem Beispiel 1, jetzt mein Versuche. Leider gibts einen Fehler.

Delphi-Quellcode:
var oEdit: TEdit; i : Integer;

     for i := 1 to StrToInt(ComboHaftstanzenAnzahl.Text) do
       begin        
         oEdit := FindComponent('EditStanzeKategorie' + IntToStr(i)) as TEdit;
         DataArtikelStanzen.IBDataSetArtikelStanzenKATEGORIE.AsString := oEdit.Text;
       end;
Der Compiler bring keinen Fehler, jedoch im Programm gibt es 'ungültige Typumwandlung'. Und zwar in der 1.-ten Zeile nach 'begin'. Diese Editfeld heißt 'EditStanzeKategorie1, EditStanzeKategorie2 usw.
Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.
Seite 1 von 2  1 2      

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