Autor Beitrag
MichaelW
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 20.10.02 13:48 
Hallo,

ich möchte ein MDI Child Fenster aus einer DLL herausstarten. Dazu habe ich eine DLL angelegt ein Formualr darin angelegt und eine Funktion geschrieben, die eine Instanz des Formulares anlegt und kreiert. Hier die exportierte Funktion:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var NewChildWind: TMDIChildWin;

function CreateNewMDIChildWin(Parent:TComponent; const Name: string;): TMDIChildWin; stdcall;

begin
  NewChildWind := TSplitterMDIWin.Create(Parent);
  NewChildWind.Caption := Name;

  CreateNewMDIChildWin:=NewChildWind;
end;

TMDIChildWin ist eine Klasse die ganz normal von TForm abgeleitet ist und FormStyle=fsMDiChild setzt soweit also wie bei einem normalen MDI Projekt.

Versuche ich aber nun aus dem Hauptprogramm ein neues Fensteranzulegen, krieg ich immer einen Ausnahmefehler mit der Meldung, das "kein aktives MDI Hauptformular vorhanden ist" (sinngemäss) obwohl ich wie im Hilfe Beispiel von Delphi sonst alles 100% mache eben nur das die Funktion zum kreieren des Formulars in der DLL steckt!

Frage geht sowas in Delphi grundsätzlich nicht zu lösen oder mache ich was grundlegendes verkehrt?

Sowas muss doch möglich sein oder?

Vielen Dank für Hilfestellungen!!!

(20.10.02 14:24 Tino) Code-Tags hinzugefügt.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 21.10.02 10:16 
Hallo,
MichaelW hat folgendes geschrieben:
Sowas muss doch möglich sein oder?

ich fürchte nicht, da die DLL in einem andern Adressraum läuft wie dein Programm. Dlls sind leider ein ziemlich alter Hut (sieht man auch dadran, das sie nicht Objekt Orientiert sein können). Da musst du gegebenenfalls BPLs verwenden, mit denen müsste alles möglich sein, was Delhi hergibt.

Gruß
Klabautermann