Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

событие в ком-объекте   Найти похожие ветки 

 
AlexeyMir   (2005-09-06 17:40) [0]

Помогите. Я подключаю ком-объект
oleQQ:=CreateOleObject("oleQQer.oleQQ");
Как мне повесить функцию на событие в ком-объекте?

Пробовал
oleQQ.OnThr:=Proc1

procedure Proc1;
begin  
....  
end;

Не работает.


 
kblc ©   (2005-09-07 22:11) [1]

Не знаю как у тебя но у меня всё работает

 ...

 private
   prOnThr: TNotifyEvent;
 public
 property OnThr: TNotifyEvent read prOnThr write prOnThr;

procedure *.Initialize;
begin
 prOnThr:=nil;
end;

...

procedure *.DoSomething();
begin
 if Assigned(OnThr) then
    OnThr(*);
end;


 
AlexeyMir   (2005-09-09 14:38) [2]

Так нет. Я подключаю ОЛЕшку, в которой есть событие OnThr, на которое я хочу повесить процедуру DoDo

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure DoDo(Sender: TObject);
....

var
 Form1: TForm1;
 oleQQ: OleVariant;

procedure TForm1.Button1(Sender: TObject);
begin
oleQQ:=CreateOleObject("oleQQer.oleQQ");
oleQQ.OnThr:=DoDo;

...
end;

procedure TForm1.DoDo;
begin
ShowMessage("wrtg");
end;

Так вот ето не работает. событие OnThr ничего не возвращает(т.е параметров нема)
Я догадываюсь, что дело в Sender:TObject. Т.к. oleQQ не принадлежит форме, но как сделать правильно не знаю...


 
kblc ©   (2005-09-12 10:04) [3]

Приведи код OLE сервера, особенно объявление метода OnThr.


 
AlexeyMir   (2005-09-14 11:05) [4]

У меня нет кода OLE сервера, у меня есть *_TLB.pas

 _IAxECRClass98Events = dispinterface;
 IAxECRClass98 = interface;
 IAxECRClass98Disp = dispinterface;

 AxECRClass98 = IAxECRClass98;

 _IAxECRClass98Events = dispinterface
   procedure OnTrxComplete(auth_code: LongWord); dispid 1;

 TAxECRClass98OnTrxComplete = procedure(ASender: TObject; auth_code: LongWord) of object;
TAxECRClass98 = class(TOleControl)

 private
    FOnTrxComplete: TAxECRClass98OnTrxComplete;
 published
    property OnTrxComplete: TAxECRClass98OnTrxComplete read FOnTrxComplete write FOnTrxComplete;

implementation

uses ComObj;

procedure TAxECRClass98.InitControlData;
const
 CEventDispIDs: array [0..0] of DWORD = (
   $00000001);
 CControlData: TControlData2 = (
   ClassID: "{EFA160AD-6EBB-11D8-8ED8-B87A66FC103A}";
   EventIID: "{EFA160AE-6EBB-11D8-8ED8-B87A66FC103A}";
   EventCount: 1;
   EventDispIDs: @CEventDispIDs;
   LicenseKey: nil (*HR:$80004002*);
   Flags: $00000000;
   Version: 401);
begin
 ControlData := @CControlData;
 TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnTrxComplete) - Cardinal(Self);
end;

Мне нужно повесить функцию DoDo на событие OnTrxComplete


 
Набережных С. ©   (2005-09-14 20:22) [5]

>AlexeyMir
Ну так и надо создавать класс TAxECRClass98, CreateOleObject тут неуместна. Либо посмотреть, как работа с событием реализована в этом классе, и делать так-же.



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
2-1163420289
Juju
2006-11-13 15:18
2006.12.03
Передвижение записей "вверх" и "вниз". Способ реализации...


1-1161168646
i-am-vladko
2006-10-18 14:50
2006.12.03
DHTMLEdit, DHTMLSafe


2-1163146600
maxistent
2006-11-10 11:16
2006.12.03
Ресурсы


2-1163600738
Tru
2006-11-15 17:25
2006.12.03
Базы данных


1-1161328605
312kbps
2006-10-20 11:16
2006.12.03
Получить ссылку на объект 1С !!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский