Auf in Laufzeit erstelltes Label von anderem Formular zugreifen
-
Hallo zusammen,
wie kann ich auf ein Label von einem anderen Formular zugreifen, das erst zur Laufzeit erstellt wurde?
Code:
const int x = 50; int i; TLabel *Aufschrift[x]; i++; Aufschrift[i] = new TLabel(Form1); Aufschrift[i]->Left = 30*i; Aufschrift[i]->Top = 10*i; //...
Dann in Form2:
Form1->Aufschrift[2]->Caption = "Aufschrift2"; //...
Aber das geht leider nicht. Ich bekomme die Meldung, dass Aufschrift kein Element von Form1 ist.
Danke für die Hilfe!
-
Oh tut mir leid.
Hab gerade etwas ausprobiert und habs durch Zufall selber geschaft.
Trotzdem Danke!
-
Aber bitte keine Public-Variable, ja? (->FAQ)
Ausserdem ist doch FindComponent auch von "Aussen" zugreifbar?-junix
-
Zur Laufzeit erstellte Komponenten haben einen Namen?
Und die zur Entwicklungszeit hingeklickten Komponenten sind doch auch alles public Variablen... stehen zwar bei __published, aber von Verhalten können die imho nicht weniger als public vars.*edit*
Die Hilfe meint dazu:
"Die Sichtbarkeitsregeln für Elemente, die als published deklariert sind, sind identisch mit denjenigen für Elemente, die als public deklariert sind."[ Dieser Beitrag wurde am 17.06.2003 um 08:18 Uhr von dreaddy editiert. ]
-
Original erstellt von dreaddy:
Zur Laufzeit erstellte Komponenten haben einen Namen?Wenn du ihnen einen zuweist, sicher.
Was die Public/Published-Angelegenheit angeht. Macht der C++ Builder zwar so, aber das heisst noch lange nicht, dass es gut ist.
-junix
-
Mich irritiert nur dieses
"Warnung: Ändern Sie den Wert der Eigenschaft Name auf keinen Fall zur Laufzeit."Und sicher ist das mit public keine schöne Sache und man sollte die Komponenten andere Forms eigentlich in Ruhe lassen ob dynamisch erstellt oder nicht, aber FindComponent ist auch eine "durch die Brust ins Auge" Lösung.
So nach dem Motto "so Mr. FindComponent, durchsuch mal alle Komponenten die du kennst und gib mir die mit dem Namen 'xxx', egal ob sie private, public oder sonstwie ist".