C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ActiveX, событие OnClick и др.
Лена
Отправлено: 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
Попробую реализовать. rolleyes.gif

P.S.
Все, вопрос решен! yahoo.gif

Отредактировано Лена — 12.03.2007, 15:44

Вернуться в Технологии COM/DCOM, ActiveX