|
SmallWeb поддерживает технологию плагинов. Это позволяет сторонним разработчикам подключать свои модули к программе по средством специального интерфейса PluginInterface. Плагины должны быть выполненны в виде динамической библиотеки и храниться в директории программы в папке Plugins. SmallWeb при открытии сканирует эту директорию на наличие DLL файлов и, если таковые есть, ищет в них процедуру инициализации плагина procedure InitPlugin(PlugClass:TPluginInterface); Так же должен быть описан класс TPluginInterface:
TPluginInterface = class
public
function GetApplication:TApplication;virtual;stdcall;abstract;
procedure AddMenuItem(MenuItemCapt:string;
Proc:TNotifyEvent);virtual;stdcall;abstract;
procedure WBNavigate(Adress:string);virtual;stdcall;abstract;
Методы, описанные в этом классе, позволяют плагину узнать информацию о приложении (GetApplication:TApplication;), создать пункт меню программы SmallWeb в главном меню Plug-ins (AddMenuItem(MenuItemCapt:string;Proc:TNotifyEvent);) и перейти по указанному адрессу (WBNavigate(Adress:string);).
Так же в процедуре инициализации плагина должна быть инициализирована переменная DemoInterface, описанная в модуля вместе с классом интерфейса плагина:
var
DemoInterface:TPluginInterface;
Ниже приведён пример процедуры инициализации плагина:
procedure InitPlugin(PlugClass:TPluginInterface);
begin
DemoInterface:=PlugClass;
Form1:=TForm1.Create(nil);
PlugClass.AddMenuItem('MyMenu', Form1.MyProcedure);
end;
exports
InitPlugin;
|