 |
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 из старой библиотеки и в него забить все нужные команды и кнопки... А непосредственно заниматься работой и рассчетами через новую библиотеку типов.
На лучший вариант меня так и не хватило
Может быть, Михаил Власов что-нибудь подскажет?! Жду с нетерпением! _________________ Нет ни чего сложнее, чем достигнуть простоты. |
|
Вернуться к началу |
|
 |
Михаил Власов

Зарегистрирован: 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 |
|
Вернуться к началу |
|
 |
gstof
Зарегистрирован: 26.01.2007 Сообщения: 70 Откуда: Vladivostok-Kurgan
|
Добавлено: Пт 23 Мар 2007 17:06 Заголовок сообщения: |
|
|
VМожет быть это зависит от версии Ингео?
Моя 4.1.3.0
Потому что такая печальная участь при подключении всех модулей, написанных под Сом сервер |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|