![]() |
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. |
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:
bietet sich die Nutzung eines Arrays oder auch einer Liste an.
Variable + IntToStr(i)
|
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. |
AW: Editfelder in einer For-Schleife
Probiers halt aus.
Damit kannst du deine Frage schon selbst beantworten. |
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; |
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; |
AW: Editfelder in einer For-Schleife
Danke TRomano,
habe jetzt verstanden. Gruß, Luckner |
AW: Editfelder in einer For-Schleife
Bei einer Kompilersprache wie Delphi kann man im Gegensatz zu einer Interpretersprache keine Variablennamen zur Laufzeit zusammenbasteln.
|
AW: Editfelder in einer For-Schleife
Hallo,
ob eine Programmiersprache kompiliert oder interpretiert wird, ist keine Eigenschaft der Programmiersprache. mfg frank |
AW: Editfelder in einer For-Schleife
Hallo TRomano,
angelehnt an Deinem Beispiel 1, jetzt mein Versuche. Leider gibts einen Fehler.
Delphi-Quellcode:
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.
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; Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz