Variablenname dynamisch erstellen
-
HI Leute ich habe folgendes Problem und hoffe ihr könnt mir helfen!
Ich habe ein paar Editfelder (Edit1, Edit2..) jetzt möchte ich auf deren Inahlt zugreifen und das am besten in einer Schleife! Wie kann ich den Edit-namen Hochzählen und dann noch "->Text" dahinterhängen?THy schon mal im vorraus!
-
siehe FAQ
-
Oder du siehst dir die Deklarationen von Editobjekten an, und machst daraus ein Array, wäre einfacher, aber natürlich müsstest du dann erstmal für jedes Edit die Werte zuweisen.
-
So müsste es gehen:
TEdit *edit;
char cBufObject[16];
sprintf(cBufObject, "Edit%i", i);
edit = (TEdit *)FindComponent(cBufObject);
((TEdit *)edit)->Text = "Jetzt schreibe ich was in Edit1 rein!";Gruß
Al
-
Sorry, da fehlte noch am Anfang
int i = 1;
-
Hallo
@AlTheKingBundy
Mit deinem Code kann er aber nur schwerlich eine Schleife aufbauen. Ich denke ein Blick in die FAQ, besonders dieser Punkt: Komponenten benutzen - Dynamische Arrays von Komponenten oder Objekten sollte eigentlich helfen.Ciao
[ Dieser Beitrag wurde am 13.06.2003 um 14:06 Uhr von Braunstein editiert. ]
-
Ja, genau sowas meinte ich, so in der Art *g* Echt gut, dass das jemand gefunden hat
Wenn das nicht Hilft, dann hilft nix mehr, lol
-
Ich persönlich, bevorzuge diese Variante.
-junix
-
Wir könnten ja beides kombinieren. Wenn keine TEdits zu Laufzeit neu hinzugefügt werden, könnte man mit diesen Code einen vector (Zugriff über index) oder eine map (Zugriff über Name) erzeugen und das dann weiter verwenden. So braucht man sich dann nicht immer durch alle Komponenten zu hangeln.
Ich finde übrigens, dass im obigen Code etwas zuviel gecastet wird. Einmal reicht.Ciao
-
des schon, aber in dem Code hat man ein Array, mit dem jeder klarkommt *g*