Objekte in C++
-
Hallo,
ich bin neu hier und hoffe das ihr mir helfen könnt!!!
Ich versuche gerade ein Programm zu entwickeln und komme nicht so richtig weiter. Und zwar, habe ich ein Formular und auf diesem mehrere Objekte.
Nun muss ich aber die Eigenschaften (der Text) von allen Objekten während der Laufzeit verändern.
Gibt es da eine Möglichkeit die Eigenschaften in einer Schleife zu verändern.Bsp.:
Zurzeit ist es so:Memo1->Text=Spiel.feld[0][0]; Memo2->Text=Spiel.feld[0][1]; Memo3->Text=Spiel.feld[0][2];....
....
.... und einige mehrDiesen Block würde ich gerne in einer Schleife ändern, so dass ich nur zwei for Schleifen habe.
for(...) { for(...) { Memo??->Text=Spiel.feld[?][?]; } }Gäbe es so eine Lösung???
Hoffe ihr versteht mein anliegen und freue mich auf antworen.
-
roadrunner87 schrieb:
...Und zwar, habe ich ein Formular...
*Zork* ANSI C++ kennt keine Formulare, bitte vorher prüfen in welches Unterforum man postet. Dies gehört wohl (vermute ich zumindest) in das VCL/C++ Builder Unterforum.
roadrunner87 schrieb:
Gibt es da eine Möglichkeit die Eigenschaften in einer Schleife zu verändern.
Auch wenn deine Wortwahl sehr ungünstig ist:
a) Es gibt keine Möglichkeit dynamisch die Variablennamen festzulegen
b) Du kannst aber Zeiger auf deine Objekte in einer Liste (std::vector o.ä.) halten, und darüber iterieren.Wenn dir der Begriff iterieren nichts sagt, solltest du eh erstmal ein C++ Grundlagenbuch und Konsolenanwendungen verwenden, und nicht gleich mit einer graphischen Oberfläche anfangen. Dort wirst du vielleicht auch merken, warum ich deine Begriffswahl eher ungünstig finde

cu André
P.S. Bin ich mal nicht so...Beispiel (wie man es im C++ Builder in etwa machen könnte, bei den Typnamen etc. bin ich mir nicht immer sicher):
// Im oberen Teil deines Headers der Form #include <vector> // In dem private-Bereich deiner Form std::vector<TMemo*> memoFelder; // Im Konstruktorrumpf der Form in der C++ Datei ... memoFelder.push_back(Memo1); memoFelder.push_back(Memo2); memoFelder.push_back(Memo3); ... memoFelder.push_back(MemoN); ... // In deiner Funktion (Hier gibt es mehrere Varianten, ich wähle mal // die für Anfänger üblichste [Auch wenn man eher Iteratoren/Algorithmen verwendet]) for(std::size_t pos=0, end=memoFelder.size(); pos!=end; ++pos) memoFelder[pos] = /*was auch immer*/;