Hm, da hab eich noch eine Lücke irgendwo.
Interface:
Delphi-Quellcode:
type
IPluginInterface = interface(IHYVisualPlugin)
['{D728C6B3-837B-4D40-AE99-A8FBD71D7CE8}']
function GetName: String;
function GetVersionString: String;
function GetVersionMajor: Cardinal;
function GetVersionMinor: Cardinal;
function GetAuthor: String;
function GetComment: String;
function GetDescription: String;
end;
IHostInterface = interface
['{1BA2CA86-4EED-411C-ABA1-D1BD1F6B3E96}']
function GetID: Cardinal;
end;
Host:
Delphi-Quellcode:
type
TMainForm = class(TForm, IHostInterface)
HYModuleManager1: THYModuleManager;
pnlPluginArea: TPanel;
btnLoadPlg: TButton;
btnUnloadPlg: TButton;
Memo1: TMemo;
procedure btnUnloadPlgClick(Sender: TObject);
procedure HYHydraAction1Execute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnLoadPlgClick(Sender: TObject);
private
{ Private declarations }
FPluginForm: IHYVisualPlugin;
FPlugin: IPluginInterface;
function GetID: Cardinal;
public
{ Public declarations }
end;
// ...;
// ...;
function TMainForm.GetID: Cardinal;
begin
Result := 42;
end;
Plugin:
Delphi-Quellcode:
procedure THydraVisualPlugin.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr((FHost as IHostInterface).GetID));
end;
Aber da bekomme ich eine
AV. Im Plugin muss noch was fehlen.
Ich werde mir das Beispiel noch mal angucken, aber erst morgen, jetzt ist Feierabend.