Hallo,
function TForm1.LeseFelder: String;
var I : Integer;
begin
Result := ‚‘;
for I := 0 to Pred(ComponentCount) do
if (Components[I] is TEdit) then
if Length(Result) = 0 then
Result := TEdit(Components[I]).Text
else
Result := Result + ‚|‘ + TEdit(Components[I]).Text;
end;
du solltest aber vielleicht erwähnen, dass auf diese Weise ALLE TEdits, die sich auf der Form befinden, in das Result eingefügt werden und dass die Reihenfolge des Einfügens durch die Eigenschaft TabOrder der TEdits bestimmt wird. Soll also nur ein zusammengehöriger Satz an TEdits berücksichtigt und andere ausgelassen werden, funktioniert das nicht mehr. Ob das jetzt universeller ist als die beiden anderen Ansätze?
Zumal zB der Ansatz über das Array auch den direkten Aufruf des TEdit über seinen Index ermöglicht, während die TabOrder sich ja über alle Komponenten auf der Form erstreckt.
Dein Code lässt sich aber sehr gut für die Initialisierung des Arrays verwenden. Man kann ein dynamisches Array nehmen und mit deinem Code die Komponenten durchgehen. Sollte man auf ein TEdit mit dem Namen ‚Feldx‘ stoßen, so kann man das x extrahieren und das TEdit dem entsprechenden Array-Member zuweisen. Bei bedarf wird vorher das Array redimensioniert. Auf diese Weise könnte man einfach zur Entwurfszeit oder auch zur Laufzeit neue TEdits in die Form einfügen und sie würden automatisch in das Array übernommen sobald eine Neuinitialisierung durchgeführt wird.
Gruß, Niels
Gruß, Niels