Лена |
Отправлено: 17.01.2007, 14:25 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
В OleContainer загружен ActiveX:
OleContainer1->CreateObject(NameOfClass,false);
OleContainer1->DoVerb(ovShow);
Где NameOfClass имя класса нужного ActiveX.
У загруженного ActiveX-а есть методы и события. Например, метод About можно вызвать так:
Form1->OleContainer1->OleObject.OleFunction(“About”);
После вызова получаем окно About компонента.
Можно вызвать метод с параметрами. Например, метод с одним параметром вызывается так:
TAutoArgs<1> args;
args[1] = par1; //где par1 значение параметра
Form1->OleContainer1->OleObject.OleFunction(Имя метода,static_cast<TAutoArgsBase*>(&args));
Вопрос как вызвать событие? Например, ActiveX имеет событие DblClick без параметров.
Так вызвать нельзя:
Form1->OleContainer1->OleObject.OleFunction(“DblClick”);
Исключение пишет: “Неизвестный тип”;
И так тоже не проходит:
Form1->OleContainer1->OleObject.OlePropertyGet(“DblClick”);
Как программно вызвать на выполнение событие ActiveX-а? Имя события известно и сам ActiveX загружен в OleContainer.
Вот тут нашла http://rsdn.ru/article/qna/com/comevents.xml но не разобралась как под Builder адаптировать.
Отредактировано Лена — 19.01.2007, 10:45 |
|
ion |
Отправлено: 19.01.2007, 11:18 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 15
|
Честно сказать давно не писал активексы, так как пишем щас
на яве(технология для малоимущих, или поппросту для нищих)
но не надо путать события и функцию события.
событие это член определенного типа, которому присвоена ссылка на функцию
определенной сигнатуры, что тебе мешает написать свою функцию
и присвоить ее клику( только вот сигнатуру не вьезжаю)
могу ошибиться, но там есть параметры( по умолчанию), а если есть параметры то это закон, хотя этот закон ты можешь изменить сама,
потом обращаться с функцией как с псевдо событием, обрати внимание на
сигнатуру, тут у тебя кажется подвох.
тема интересная, практически нигде толково не обьясняется,
пробовал в свое время написать хелпики по ней
http://ion100.hut1.ru/Builder&Delphi.htm что получилось, не знаю
но должно помочь с уважением ION |
|
Лена |
Отправлено: 28.02.2007, 12:59 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
Похоже нашла решение в этой книге (глава 12): http://www.bhv.ru/books/full_contents.php?id=406
Попробую реализовать.
P.S.
Все, вопрос решен!
Отредактировано Лена — 12.03.2007, 15:44 |
|
|