Einzelnen Beitrag anzeigen

St.Gro

Registriert seit: 21. Dez 2004
Ort: Duisburg
13 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: Wie Panel in dll ablegen und bei bedarf laden

  Alt 30. Dez 2004, 10:42
Zitat:
Beim beenden des Programm trit ein Runtime-Error auf.
Ich hatte gedacht, es reicht, das Panel freizugeben, das reicht aber scheinbar nicht.
Du musst noch eine unload Prozedur mit ins Package übernehmen:

Code:
procedure UnloadMe;
begin
  fmTest.free
end;
und diese im FormClose Event aufrufen, dann kommen auch keine Fehler mehr beim Programmende:

Code:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  UnloadProc: procedure;
begin
  @UnloadProc:=GetProcAddress(phm, 'UnloadMe');
    if Assigned(UnloadProc) then
      UnloadProc;
Alternativ würde es sich anbieten, einen Verweis auf das Formular im Package der Hauptanwendung zu übergeben (Das geht mit Packages im Gegensatz zu DLLs), dann kannst du ja auch so free aufrufen.

Zitat:
wenn ich UnloadPackage in z.B. OnClose ereigniss einsetze so muss ich ja die Variable phm: hModule global machen d.h. ich kann nur ein Plugin laden. (Es sollen mehrere Plugins geladen werden können)
Nun, du denkst aber schon noch selber mit? z.B. die Idee von MrKnogge würde sich mir da auch als erstes aufdrängen.

Mit der Taskleiste, das kann ich nicht reproduzieren. Bei mir erscheint weder in der Taskleiste noch in der Prozessübersicht ein Eintrag vom geladenen Modul (Wie es auch sein sollte).
Schick mir doch mal bitte deinen Code.
Stress hat man nicht, Stress macht man sich
  Mit Zitat antworten Zitat