Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Problem mit Interfaces und LoadPackage

  Alt 17. Jun 2005, 12:05
Hehe...weiter gehts mit meinem Problem

Ich arbeite jetzt wie vorgeschlagen mit Supports(). Beim Laden des Moduls geschieht folgendes:
Delphi-Quellcode:
//Actually load the module and initialize it
Module.MainForm := TFormClass(Module.MainFormClass).Create(Application);
if Supports(Module.Mainform, IModuleMainForm, Module.MainFormInterface) then
   Module.MainFormInterface.SetProgramStyle(ProgramOptions.GetOption('ProgramStyle'));
with Module.MainForm do
begin
   Align := alClient;
   BorderStyle := bsNone;
   Parent := Self.fMainFormParent;
   Visible := False;
end; //with Module.MainForm do
Die Routine zum Freigeben sieht so aus:
Delphi-Quellcode:
function TModules.FreeModule(Module: TModuleItem): Integer;
begin
   Result := ERR_NO_ERROR;
   if not Module.fModuleActive then
   begin
      exit;
   end; //if not Module.fModuleActive then
   Module.MainFormInterface._Release;
   FinalizePackage(Module.fModuleHandle);
   UnloadPackage(Module.fModuleHandle);
end; //function TModules.FreeModule(Module: TModuleItem): Integer;
Wenn ich nun aber das Item selbst freigebe (was geschieht sobald ich die Collection freigebe), erhalte ich eine AV beim Aufruf, in den ich leider auch nicht reindebuggen kann. FreeModule() wird vor dem Free der Collection fuer alle Elemente aufgerufen. Wenn ich die gesamte Interfacesache ausklammere, funktionierts ohne Probleme. Die _Release-Zeile habe ich eingefuegt, um der AV entgegenzuwirken, aber das hat leider auch nichts gebracht

Kann mir (wiedermal) jemand weiterhelfen?

Greetz
alcaeus

[edit]Offene Frage[/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat