Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#1

DLLs/BPLs und Forms

  Alt 27. Apr 2013, 23:23
Hallo zusammen,

vielleicht ist das wieder ein Post, der eine einfache Lösung hat, aber ich finde sie leider nicht, sodass ich Eure Hilfe brauche.

Um ein Programm komfortabel im Funktionsumfang erweitern zu können, bin ich auf DLLs bzw. BPLs gestoßen.
Welche ich davon effektiv verwenden werde ist eigentlich egal, denn das Programm ist nur für mich und ich entwickle nur mit Delphi...

Das ganze funktioniert auch wunderbar, sprich ist kann BPLs/DLLs laden und verwenden.
Dabei habe ich mich an dem Tutorial hier Plugins in eigenen Anwendungen von sakura orientiert.

Wenn ich allerdings daran gehe, Forms zu verwenden, steigt mir das Programm mit einer EAccessViolation aus.
Code:
"at address 5003A43E in module 'rtl150.bpl'. Read of address 025F168C'."
Ich kompiliere die "MainApplikation" mit Runtime-Packages und lade die BPLs, die mir den Funktionumfang erweitern sollen (hier Program02) dynamisch (mit LoadPackge/UnloadPackge).

Das Programm bricht mit der oben genannten Fehlermeldung ab, sobald der Constructor von TProgram02 aufgerufen wird.

im Plugin-Package "Program02.bpl":
Delphi-Quellcode:
//"uProgram02.pas"

type TProgram02 = class(TObject)
  private
    FGUI : TProgram02GUI;
  public
    constructor Create;

[...]

constructor TProgram02.Create;
begin
  FGUI := TProgram02GUI.Create(nil);
end;

//"uProgram02GUI.pas"

type TProgram02GUI = class(TForm)
[...]
Ich habe mal ein Minimal-Beispiel angehängt. Ich hoffe, dass jemand draus schlau werden kann.
Angehängte Dateien
Dateityp: zip PluginTest_BPL_small.zip (604,6 KB, 6x aufgerufen)
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat