![]() |
Komponente über Nummer variabel ansprechen
Hallo,
ich versuche gerade den folgenden Code anzupassen. Folgendes Problem: Ich habe auf einem Formular über 20 TLabeledEdit-Felder und möchte diese nun in einer kleinen Funktion, siehe weiter unten, prüfen und gegenbenenfalls anpassen. Wie bekomme ich folgendes Gedankengerüst hin?
Delphi-Quellcode:
Aufruf:
function Zuweisen(i: Integer): String;
var EditInhalt: String; begin EditInhalt := Form1.LabeledEdit[i].Text; if EditInhalt = '' then Result := leer else Result := EditInhalt; end;
Delphi-Quellcode:
Das muss doch irgendwie gehen. Ich denke bestimmt nur wieder zu kompliziert. :wall:
v1 := Zuweisen(1);
v2 := Zuweisen(2); usw. |
Re: Komponente über Nummer variabel ansprechen
Das geht mit .FindComponent
|
Re: Komponente über Nummer variabel ansprechen
Die Murkslösung hieße FindComponent, aber es geht definitiv schöner.
Darf ich annehmen, dass alle Edits untereinander liegen oder sonstwie geordnet sind? Dann wäre es eigentlich sinnvoller (und schneller, aber du hast sie ja schon platziert), sie dynamisch zu erzeugen und in einem Array zu speichern. [edit] Ich hatte schon gehofft, der rote Kasten würde langsam funktionieren :gruebel: . [/edit] |
Re: Komponente über Nummer variabel ansprechen
Dynamisch erstellen fällt ins Wasser.
FindComponent hmmm. Ich glaub ich schalt die Kiste heute lieber mal aus. Draussen ist es so heiss heute da funktioniert der Kopf nicht mehr richtig. |
Re: Komponente über Nummer variabel ansprechen
Delphi-Quellcode:
EditInhalt := (Form1.FindComponent('LabeledEdit'+IntToStr(i)) as TLabeledEdit).Text;
|
Re: Komponente über Nummer variabel ansprechen
Cool, genau das habe ich gesucht. Nun ist der Tag doch noch gerettet. :angel:
|
Re: Komponente über Nummer variabel ansprechen
Hi,
nur der Vollständigkeit halber wollte ich hier mal erwähnen, dass sich find Control natürlich eher anbietet, da du ein Control suchst. Ist wahrscheinlich nur minimal schneller, aber du brauchst halt nicht alle TComponents betrachten, wenn es auch die Controls tun. Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 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-2025 by Thomas Breitkreuz