Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Добавление пункта меню

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Сб 12 Авг 2006 15:53    Заголовок сообщения: Добавление пункта меню Ответить с цитатой

Здравствуйте, уважаемые разработчики!
Подскажите, пожалуйста, как осуществляется объявление процедур, которые вызываются при выборе пункта меню?
Я вставил пункт в меню "Сервис", а вот с параметром aHandler метода IInUIActions.Add возникли затруднения...
Почему-то не получается создать то, что нужно вставить в виде параметра.
Пример:
type IMyAction = interface(IDispatch)
...procedure MyProcedure;
end;
.
.
.
procedure MyProcedure;
begin
...ShowMessage('Hi');
end;
Но вызова этой процедуры не происходит, хотя она, вроде бы, приписана к кнопке меню.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Вс 13 Авг 2006 01:12    Заголовок сообщения: Ответить с цитатой

Похоже наиболее простой способ работать с панелью задач - это создать экземпляр TM2CustomAddon из старой библиотеки и в него забить все нужные команды и кнопки... А непосредственно заниматься работой и рассчетами через новую библиотеку типов.
На лучший вариант меня так и не хватило Crying or Very sad
Может быть, Михаил Власов что-нибудь подскажет?! Жду с нетерпением!

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Пт 25 Авг 2006 16:19    Заголовок сообщения: Ответить с цитатой

Пример реализации обработчика команды на Delphi:
Код:

unit ActionHandlerSampleObject;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
  ComObj, ActiveX, ActionHandlerSample_TLB, StdVcl, Ingeo_TLB, InScripting_TLB;
type
   TActionHandlerModule = class(TAutoObject, IActionHandlerModule)
   private
      FIngeo: IIngeoApplication;
      FContextCard: IInContextCard;
   protected
      procedure Init(const Ingeo: IDispatch); safecall;
      procedure Done; safecall;
    procedure HandlerMethod; safecall;
   end;
implementation
uses ComServ, Variants, Dialogs;
procedure TActionHandlerModule.Init(const Ingeo: IDispatch);
var
   Action: IInUIAction;
begin
   FIngeo := Ingeo as IIngeoApplication;
   FContextCard := FIngeo.CreateObject(inocContextCard, Null) as IInContextCard;
   Action := FIngeo.MainWindow.Actions.Add(FContextCard,
      'Samples', 'ActionHandlerSampleAction', 'Пример обработчика',
      Self, 'HandlerMethod');
   FIngeo.MainWindow.Menu.Items.Insert(FContextCard,
      '', '', Action, Null);
end;
procedure TActionHandlerModule.Done;
begin
   FContextCard := nil;
   FIngeo := nil;
end;
procedure TActionHandlerModule.HandlerMethod;
begin
   ShowMessage('Handler method');
end;
initialization
  TAutoObjectFactory.Create(ComServer, TActionHandlerModule, Class_ActionHandlerModule,
    ciMultiInstance, tmApartment);
end.

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
gstof



Зарегистрирован: 26.01.2007
Сообщения: 70
Откуда: Vladivostok-Kurgan

СообщениеДобавлено: Пт 23 Мар 2007 16:52    Заголовок сообщения: Ответить с цитатой

Собрал DLL по вашему примеру в Дельфи 2006.
При подключении модуля опять поднимается крик, что модуль не содержит функции M2DLLRegisterAddOn
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gstof



Зарегистрирован: 26.01.2007
Сообщения: 70
Откуда: Vladivostok-Kurgan

СообщениеДобавлено: Пт 23 Мар 2007 17:06    Заголовок сообщения: Ответить с цитатой

VМожет быть это зависит от версии Ингео?
Моя 4.1.3.0
Потому что такая печальная участь при подключении всех модулей, написанных под Сом сервер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB