Extern Package TCharakter *Charkter und Charakter in mehreren Cpp's verwenden
-
Hallo, ich habe ein Programm mit einem Hauptformular, in dessen Header wird folgendes am Ende aufgeführt:
Extern Package TCharakter *Charkterund in der dazugehörigen Cpp-Datei wird dann
TCharakter *Charakterdefiniert.
Beim Ereignis OnCreate des Hauptformulars wird dann mit
Charakter=new TCharakter()der Speicherplatz für das dynamische objekt bereitgestellt.
Nun habe ich noch weitere Nebenformulare, die ebenfalls auf Charakter zugreifen sollen.
Die erste Variante war, es einfach zu machen, indem ich den Header des Hauptformulars mit include eingefügt hab.
Was allerdings zu merkwürdigen Effekten führte (anscheinend waren die Verwendeten dynamischen Charakter Objekte nicht gleich) und sicherlich auch nicht sinnvoll war.
Als zweites hab ich versucht, in der Klasse des Nebenformulars einen Zeiger zu definieren, und eine Methode, um den Zeiger zuinitialiseren. Diese Methode sollte im Ereignis OnCreate des Hauptformulares ausgeführt werden. Was allerdings zu Zugriffsverletzungen führte.
Daher meine Frage, wie kann ich es schaffen, daß ich folgendes Problem umsetze:header Hauptformular mit Klassendefinition von TCharakter
cpp Hauptformular mit Implementation von TCharakter, deklaration von
TCharakter *Charakter und sonstigenheader Nebenformular
cpp Nebenformular das auf Charakter zugreifen muß.
-
GeraldR schrieb:
... um den Zeiger zuinitialiseren. Diese Methode sollte im Ereignis OnCreate des Hauptformulares ausgeführt werden. Was allerdings zu Zugriffsverletzungen führte.
Bei OnCreate sind die Nebenformulare nocht geladen!!!
Probier's mal in OnActivate
Oder machs in WinMain!
-
Und dann vielleicht auch ein kleines Application->ProcessMessages(); Das kann Wunder wirken.
-
Erstmal danke. Das Problem hat sich ohnehin vor wenigen Minuten erledigt, da ich einem Fehler im Programm auf die Schliche kam und die erste Variante doch tadellos funktioniert und aufgrund #ifndef sollte es auch halbwegs sauberer Stil sein *fg*.
Aber eine Frage hätte ich noch:
Was macht Application->ProcessMessages(); ???
-
Einfach mal die BCB Hilfe benutzen!
ProcessMessages cycles the Windows message loop until it is empty, and then returns control to the application.