TFrame1.CreateParented(Self.Handle);
OHNE Frame.Parent := Self.
Dein Problem ist es das du versuchst
VCL Objecte aus einer
DLL mit denen in der EXE zu verwenden. Im Grunde kann dies nur funktionieren wenn die
DLL und die EXE+
DLL die Grundlagenpackages wie
VCL??.bpl gemeinsam benutzen.
Ich weiß man hört immer wieder das
DLL's kein Problem sind, und das doch alles mit Forms/Klassen in
DLL's absolut sauber funktioniert. Diese Aussagen sind schlichtweg falsch, verallgemeinert, und zeugen vom fehlenden Wissen darüber wie
DLL's +
VCL arbeiten.
Grundsätzlich kann man sagen: Eine
DLL-Funktion die die
VCL benutzt ist immer dann SICHER wenn sie bevor sie zurückkehrt zum Aufrufer alle
VCL Fourmlare die sie erzeugt hat wieder zerstört. D.h. ganz konkret das NUR Modale Dialoge die
VCL-basiert sind in
DLL's korrekt funktionieren.
Da hilft auch kein Rumbiegen und Tricksen mit dem Application Object, oder mit Application.Handle. Die
VCL und das Klassenkonzept von Delphi ist nicht
DLL konform. Erst, und nur dann, wenn die
DLL die gleichen Packages wie die EXE benutzten, und die gemeinsam genutzten Klassen sind in DIESEN Packages, wird es sicher. Denn nun exitieren im Prozess und den
DLL's die gemeinsammen Klassen nur EINMAL und nicht wie bei deinem Problem ZWEIMAL.
Gruß Hagen