![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Плагины
Alexx1524 © (2007-12-04 14:12:00)Пытаюсь подключать плагины к моей программе, создавая автоматически пункты меню из 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). ставлю проверку на имя вызывающего компонента, все время одно, хотя разные пункты меню... Помогоите плиз!!!
Sairex (2008-03-26 17:25:00) [1]я лично делаю следующим образом при старте программы, инициализирую каждый плагин, затем с каждого плагина получаю менюшку, при этом Tag менюшки соотвествует индексу плагина в массиве, и при выборе менюшки, выбираю необходимую для нее обрабатывающую процедуру.
DiamondShark (2007-12-05 13:36:00) [2]
> Alexx1524 (04.12.07 14:12)
Кто такой TNewPlu? Где он описан? Из какого места вызывается OnShowForm?
Этот огрызок кода ни о чём не говорит.
de. (2007-12-04 14:46:00) [3]Ну что? Еще не помогло?
de. (2007-12-04 14:28:00) [4]А в обработчике напиши чтоб плагин загружался по пути FPlugPath. Помоему поможет. :-)
de. (2007-12-04 14:24:00) [5]Перепиши TMenuItem, добави туда поле например FPlugPath и при создании элементов присваивай полю путь к плагину.!