-
Пытаюсь подключать плагины к моей программе, создавая автоматически пункты меню из Dll-ки, вот пример Procedure TNewPlu.OnShowForm(Sender : TForm); var pm,pmPlace:TMenuItem;
begin if not Assigned(Sender) then exit; if Sender.Name='mainfm' then begin pmPlace:=TMenuItem(Sender.FindComponent('n4')); if Assigned(pmPlace) then begin pm:=TMenuItem.Create(sender); pm.Name:='p2'; pm.Caption:='&Проверка работы плагина Clas...'; pm.OnClick:= PluginClick; pmPlace.Parent.Insert(pmPlace.MenuIndex+1,pm); end; end; end; создаю список плагинов, потом запускаю для каждого плагина событие OnShowForm, пункты меню появляются, но обработчик один и тот же (те из одной dll). ставлю проверку на имя вызывающего компонента, все время одно, хотя разные пункты меню... Помогоите плиз!!!
-
Перепиши TMenuItem, добави туда поле например FPlugPath и при создании элементов присваивай полю путь к плагину.!
-
А в обработчике напиши чтоб плагин загружался по пути FPlugPath. Помоему поможет. :-)
-
Ну что? Еще не помогло?
-
> Alexx1524 (04.12.07 14:12)
Кто такой TNewPlu? Где он описан? Из какого места вызывается OnShowForm?
Этот огрызок кода ни о чём не говорит.
-
я лично делаю следующим образом при старте программы, инициализирую каждый плагин, затем с каждого плагина получаю менюшку, при этом Tag менюшки соотвествует индексу плагина в массиве, и при выборе менюшки, выбираю необходимую для нее обрабатывающую процедуру.
|