Thema: Delphi Form als .dll ???

Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Form als .dll ???

  Alt 14. Apr 2005, 18:23
Das Problem mit den gemeinsamen Screen und Application Objekten lässt sich aber relativ leicht umgehen...

Delphi-Quellcode:
//Modul-Code

var
 BPLApplication: TApplication;
 BPLScreen: TScreen;

{...}

function InitModule(GlobalApplication: TApplication; GlobalScreen: TScreen;
                    FileName: String; var StatusStr: String): Boolean;
begin
 Result := true;
 try
  RegisterClass(TMeineFormKlasse);
 except
  Result := false;
  StatusStr := 'Ursache: Dieses Modul wurde bereits geladen.';
  exit;
 end;
 try
  BPLApplication := Application;
  Application := GlobalApplication;
  Application.Initialize;
 except
  Result := false;
  StatusStr := 'Ursache: Fehler bei der Übergabe des Application-Objekts.';
  exit;
 end;
 try
  BPLScreen := Screen;
  Screen := GlobalScreen;
 except
  Result := false;
  StatusStr := 'Ursache: Fehler bei der Übergabe des Screen-Objekts.';
  exit;
 end;
end;

procedure DeInitModule;
begin
 Application := BPLApplication;
 Screen := BPLScreen;
 UnregisterClass(TMeineFormKlasse);
end;
Wenn du ein Modul lädst, musst du dann nur noch InitModule aufrufen bevor du irgendwelche MDI Child-Windows erzeugst; und das Modul vor dem UnloadPackage-Aufruf mit DeInitModule deinitialisieren. Du kannst die Prozedur natürlich auch z.B in FinalizeModule umbenennen.

Edit: Tags :confused:
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat