Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Как присвоить типу OleVariant адресс процедуры?   Найти похожие ветки 

 
oleg_SYS ©   (2005-03-02 20:18) [0]

Мне необходимо через COM-объект выловить некоторые события. Но при попытке присвоить этим параметра адресса процедур, компилятор выдаёт ошибку Incompatible types. Вот пример:


procedure MyProcedure;
begin
ShowMessage(":)");
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ptrAddr: Pointer;
ov: OleVariant;
begin
ptrAddr := @MyProcedure;
ov := ptrAddr;
end;


 
Набережных С. ©   (2005-03-02 20:41) [1]


> oleg_SYS ©   (02.03.05 20:18)  

Ни-и-че не понял:( А нормальным языком изложить все это никак нельзя? Ну а несовместимость типов - все правильно, OleVariant принимает только OLE-совместимые типы, а Pointer к таковым не относится.


 
oleg_SYS ©   (2005-03-02 20:53) [2]

Набережных С., например у объекта IHTMLDOcument2 есть property:


property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;


тип - OleVariant. Мне необходимо его выловить, чтобы узнавать, когда юзер перешёл на новую страницу или нажал кнопку Refresh.


 
Набережных С. ©   (2005-03-02 21:56) [3]


> oleg_SYS ©   (02.03.05 20:53) [2]

Процедура тут не причем. Туда нужно передать интерфейс объекта, который и будет обрабатывать факт события. Т.е. при событии будет вызываться метод этого объекта. Какой нужен интерфейс в данном случае, я не знаю, никогда с ним не работал.


 
Erik1 ©   (2005-03-03 12:37) [4]

А вобще можно, что угодно запихать куда угодно. Для этого есть приведение типов. Или вобще непрямую Move писать.
ov := Integer(@MyProcedure);
Еще прикол:
Var
  a: Boolean;
begin
 Move(77, a, SizeOf(Byte));
end;


 
Digitman ©   (2005-03-03 12:45) [5]


> через COM-объект выловить


это как ?!



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

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
1-1110145166
0x011001
2005-03-07 00:39
2005.03.20
Как получить?


3-1108547759
samalex
2005-02-16 12:55
2005.03.20
Сообщение об изменениях в БД


3-1108627893
Innuendo
2005-02-17 11:11
2005.03.20
Тип данных параметра запроса для char(firebird) и varchar2(ora9)


4-1107302590
Green_Templar
2005-02-02 03:03
2005.03.20
OpenPictureDialog


1-1110285014
Новичек
2005-03-08 15:30
2005.03.20
Посылка сообщения функцией PostMessage().