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.