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

Вниз

Как присвоить типу 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
14-1109835563
ISP
2005-03-03 10:39
2005.03.20
Наконец-то админы смогут спать спокойно :)


4-1107326263
FFF
2005-02-02 09:37
2005.03.20
Top,left


14-1109539200
saNat
2005-02-28 00:20
2005.03.20
Программирование PIC-микроконтроллеров


14-1109508116
olookin
2005-02-27 15:41
2005.03.20
Как с нарезанного DVD диска видео-файл сделать авишным?


3-1108536863
Серж_Евдокимов
2005-02-16 09:54
2005.03.20
Посоветуйте плиз менеджер БД для MS SQL вместо Enterprise Manager





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский