  | 
				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
 
Потому что такая печальная участь при подключении всех модулей, написанных под Сом сервер | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
  | 
   
 
		 |