Вот в такой конструкции не могу запустить url на закачку.
вылетает Access violation at address 01A7CAA7 in module 'plugin.dll'. Read of adress 0000000C
при PluginInit создаётся форма, для теста посылаю showmessage( myIDmInterface.DoAction('GetPluginDir', ''));
если посылается из Unit1.FormCreate - ошибка.
если непосредственно из PluginInit, срабатывает, но это и понятно.
Видимо както я неправильно не в те разделы объявил процедуры. подскажите чё не так.
Code: Select all
unit plugin;
interface
uses DMPluginIntf, Classes, Dialogs, unit1, forms;
const
......
type
TDMTestPlugIn = class(TInterfacedObject, IDMPlugIn)
private
myIDmInterface: IDmInterface;
protected
public
procedure StartDownload(url,section:string;hidden:boolean);
procedure ShowPath;
....
published
end;
var PluginModul: TDMTestPlugIn;
implementation
.....
procedure TDMTestPlugIn.PluginInit(_IDmInterface: IDmInterface);
begin
myIDmInterface := _IDmInterface;
form1:=tform1.Create(nil);
end;
procedure TDMTestPlugIn.PluginConfigure(params: WideString);
begin
form1.Show;
end;
procedure TDMTestPlugIn.StartDownload(url,section: string; hidden: boolean);
begin
myIDmInterface.DoAction('AddingURL', '<url>'+url+'</url> <sectionslimit>'+section+'</sectionslimit>');
//myIDmInterface.DoAction('AddingURL', '<url>http://www.westbyte.com/plugin</url> <sectionslimit>2</sectionslimit>');
end;
procedure TDMTestPlugIn.ShowPath;
begin
showmessage( myIDmInterface.DoAction('GetPluginDir', ''));
end;
end.
Code: Select all
unit Unit1;
interface
uses
....
type
TForm1 = class(TForm)
....
procedure FormCreate(Sender: TObject);
procedure StartDownloadClick(Sender: TObject);
end;
var
.....
implementation
uses plugin;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
PluginModul.ShowPath;
.....
end;
procedure TForm1.StartDownloadClick(Sender: TObject);
begin
PluginModul.StartDownload('http://file.ru/file.zip','3',false);
......
end;
end.