• Alexx1524 (04.12.07 14:12) [0]
    Пытаюсь подключать плагины к моей программе, создавая автоматически пункты меню из 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). ставлю проверку на имя вызывающего компонента, все время одно, хотя разные пункты меню... Помогоите плиз!!!
  • de. (04.12.07 14:24) [1]
    Перепиши TMenuItem, добави туда поле например FPlugPath и при создании элементов присваивай полю путь к плагину.!
  • de. (04.12.07 14:28) [2]
    А в обработчике напиши чтоб плагин загружался по пути FPlugPath. Помоему поможет. :-)
  • de. (04.12.07 14:46) [3]
    Ну что? Еще не помогло?
  • DiamondShark © (05.12.07 13:36) [4]

    > Alexx1524   (04.12.07 14:12)  

    Кто такой TNewPlu? Где он описан? Из какого места вызывается OnShowForm?

    Этот огрызок кода ни о чём не говорит.
  • Sairex © (26.03.08 17:25) [5]
    я лично делаю следующим образом при старте программы, инициализирую каждый плагин, затем с каждого плагина получаю менюшку, при этом  Tag менюшки соотвествует индексу плагина в массиве, и при выборе менюшки, выбираю необходимую для нее обрабатывающую процедуру.
Есть новые Нет новых   [134484   +49][b:0][p:0]