Hallo zusammen!
ich hatte vor einiger Zeit hier im Forum lernen dürfen,
dass man auch Forms wie Frames in eine andere Form laden
kann...
Leider funktioniert dies nicht, wenn ich das ganze über
ein dynamisch geladenes
BPL-PlugIn tue und dessen Form
auslesen möchte.
Diese Funktion steht im PlugIn:
Delphi-Quellcode:
function TTemplatePlugIn.GetFormClass(var aFormClass: TFormClass): Boolean;
begin
result:= true;
aFormClass:= TfrmModuleForm;
end;
In der Hauptanwendung rufe ich obige Funktion des Plugins auf
und übergebe sie der folgenden Methode, die so ähnlich hier
im Forum existiert:
Delphi-Quellcode:
procedure TfrmMain.FormToPanel(aOwner: TComponent; aFormClass: TFormClass; aPanel: TPanel);
var
newFormClass: TFormClass;
begin
newFormClass := aFormClass;
if (aPanel.ControlCount = 0) or not (aPanel.Controls[0] is newFormClass) then
begin
if aPanel.ControlCount > 0 then
aPanel.Controls[0].Free;
if Assigned(newFormClass) then
begin
newForm:= newFormClass.Create(aOwner);
newForm.BorderStyle:= bsNone;
newForm.Parent:= aPanel;
newForm.Align:= alClient;
newForm.Show;
end;
end;
end;
Daraufhin tut sich: gar nichts!
Wird das Programm beendet, entsteht dann noch ein Zugriffsfehler.
Rufe ich stattdessen "newForm" mit "ShowModal" auf,
und passe es nicht an ein Elternfenster an, funktioniert es.
Ich kapiere nicht, was da im Hintergrund passiert,
denn der Host bekommt doch nur die Klasse aus der
BPL
und könnte dann damit machen was er will, oder?
Habt ihr da Rat?
Dank und Gruß
Pfoto