Abgeleitete Klassen im BCB-Objektinspektor

Hallo NewsgroupleserInnen!

Ich bin sehr neu auf dem Gebiet C++ und beschäftige mich erst seit einer Woche damit. Ich habe zuvor unter Delphi entwickelt und möchte aber nun auf C++ umstellen. Die Frage, die ich habe wird bestimmt einfach sein, aber irgendwann ist ja jeder einmal angefangen.

Ich habe vor das TEdit um ein paar Eigenschaften zum Speichern der Werte zu erweitern. Da ich nicht nur TEdit, sondern auch andere Steuerelemente erweitern möchte, habe ich alle neuen Attribute und Methoden zu einem eigenen Objekt zusammengefasst. Ich habe mir das dann so gedacht, das ich dieses Objekt dann einfach in der neuen Ableitung von TEdit einbinde. Das habe ich so verwirklicht:

class TSetupEdit : public TEdit
 {
 private:
 TSetupImplementation\* FPreferences; // neue Implementationen
 
 public:
 \_\_fastcall TSetupEdit(TComponent\* AOwner); // erzeugt vorerst auch FPreferences
 \_\_fastcall ~TSetupEdit();

 \_\_published:
 \_\_property TSetupImplementation\* Preferences = {read=FPreferences, write=FPreferences};
};

Wie man sieht möchte ich die Eigenschaften meiner Erweiterungen sowohl zur Entwurfs- als auch zur Laufzeit ändern können. Dazu habe ich im Konstruktor von TSetupEdit eine Instanz von TSetupImplementation erzeugen lassen. Jetzt wird im Objektinspektor alles sichtbar, wie ich es will.
Mein Problem: Der Konstruktor wird logischerweise auch nocheinmal aufgerufen, wenn ich das Programm starte. Dadurch sind die Änderungen, die ich im Objektinspektor mache zur Laufzeit nicht mehr vorhanden. C++ Builder selbst macht das im TCanvas aber mit TFont ähnlich. Oder ist TFont letztlich gar kein dynamisches Objekt?

Für jeden Tipp bin ich dankbar (ich bin ja schon froh, dass ich C++ bis zu diesem Punkt verstanden habe).

Bevor ich es vergesse: Wann sollte ich eigentlich AnsiString und wann char* benutzen? Ich war mir beim Erstellen der Funktionen immer nicht so ganz sicher und habe viel mit myAnsiString.c_str() für Parameterübergaben wieder zurückverwandeln müssen. So ganz verstehe ich auch nicht, wie man einen beliebig langen String (nach null-terminierender Norm) herstellen kann. Mit AnsiString sicherlich - und wie mit char*?

Jetzt schon mal vielen Dank für Antworten
C++ macht wirklich Spaß
Michael F. Bender