Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Плагины


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 и при создании элементов присваивай полю путь к плагину.!


Наверх

Титульная страница Поиск, карта сайта Написать письмо