Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: PlugIns System mit Formularen

  Alt 24. Nov 2008, 19:10
Ich weis es nicht. Immer beim Beenden kommen Speicherlecks zum Vorschein. Irgendwo steckt der Wurm drin.


Wenn du sagst, dass DLL-Forms ok sind, dann beginne ich nochmal von vorne. Da die Fehler beim Entladen auftreten, möchte ich nochmal kurz zeigen, wie ich die DLL-Forms lade und entlade. Vielleicht mache ich schon was falsch...

DLL.dpr

Delphi-Quellcode:
//Form erstellen
procedure TCalendar.InitPlugIn;
begin
  Form1:=TForm1.Create(nil);
end;

//Form anzeigen, wenn gewünscht
procedure TCalendar.Execute();
begin
  Form1.Show;
  //Form1.StartUp;
end;

//Form entladen
procedure TCalendar.FreeForms;
begin
  FreeAndNil(Form1);
end;

function LadePlugIn(Parent: THandle; var PlugIn: TProJurisPlugIn): Boolean;
begin
  try
    PlugIn := TCalendar.Create(Parent);
    Result := True;
  except
    Result := False;
  end;
end;

exports
  LadePlugIn;
das PlugIn wird bei Programmstart geladen und erstmal wieder entladen. Der Sinn ist, dass das Hauptprogramm sieht, welches PlugIn installiert ist und macht Menüeinträge. Wenn der User auf den Menüeintrag klickt, dann wird das PlugIn wieder mit LoadLibrary geladen. Beim Beenden des PlugIns wird es mit "FreeForms" entladen.

Ist doch generell richtig und sauber, oder?
  Mit Zitat antworten Zitat