A
Hallo
Schnurri schrieb:
Ich wüsste jetzt gern auch warum das so ist, was ist falsch daran es in OnCreate zu machen. Ich dachte genau dafür ist dieses Ereignis gedacht. In der Hilfe ist einBeispiel wo auch mit new Komponenten erstellt werden.
Zum einen sind Konstruktor und Destruktor feste Sprachmittel von C++. Während OnCreate und OnDestroy VCL-Erweiterungen sind. Deren Reigenfolge der Abarbeitung nicht so sicher ist wie bei ersteren. Es gab mal einen Link wo das genau erklärt wurde, aber der ist offenbar nicht mehr brauchbar.
Um neu anlegen mit this hät ich auch ne Frage. Ich kann also soviele Komponenten wie ich möchte mit new erzeugen (auch als array) und muss mir um das saubere entfernen keine Gedanken machen, weil ich this benutzt habe?! Das ja cool, wusste ich noch nicht.
Korrekt.
Ich muss wohl dann auch kein delete setzen wenn ich anstatt des this eine Elternkomponente einsetze wie "TabSheet1"?
Korrekt.
Also delete muss nur wenn Konstruktor void ist? (Wenn ich das jetzt richtig ausgedrückt habe)
Nein du meinst NULL oder 0. void kannst du nicht übergeben. Und der Konstruktor wird auch nicht NULL gesetzt, sondern der Konstruktor wird aufgerufen, nur der Parameter namens "Owner" bekommt einen Wert... zum Beispiel NULL oder this.
this ist quasi die Klasse in der ich das new mache. Meist also die TForm selbst.
Nein this ist nicht die Klasse sondern die Instanz der Klasse für die die Methode aufgerufen wird, in der du this verwendest.
Ich empfehle ein Tutorial zum Thema Grundlagen der OOP in C++ durchzulesen.
bis bald
akari