|
Обработка событий COMпонентов
|
|||
---|---|---|---|
#18+
Че-то тишина в форуме.... Вообщем такая ситуация: Передаю в VFP (7.0) указатель на интерфейс COM объекта. Необходимо программным путем связать события этого объекта с процедурами-обработчиками созданными в VFP. Причем сделать это нужно без создания каких либо VFP классов. Если у кого-нибудь есть идеи по этому поводу, прошу поделится. В долгу не останусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2003, 20:26 |
|
Обработка событий COMпонентов
|
|||
---|---|---|---|
#18+
> Че-то тишина в форуме.... Ничего удивительного - пятница, вечер.. > Необходимо программным путем связать события этого объекта с процедурами-обработчиками созданными в VFP. Причем сделать это нужно без создания каких либо VFP классов. Я знаю только один способ - через IMPLEMENTS в DEFINE CLASS. Насколько я понимаю, тебе нужно через oledb provider, а там не прокатит. Посмотри возможности Microsoft Windows Script Component , может через него можно перехватывать COM-события. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2003, 08:39 |
|
Обработка событий COMпонентов
|
|||
---|---|---|---|
#18+
Нашел решение. Утилита Vfpcom может связывать VFP класс с событиями COM объекта, причем сам класс автоматом генерится с помощью этой же утилиты и сохраняется в prg'шнике. Просто этот prg'шник потом нужно скомпилировать в runtime и можно пользоваться на здоровье. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2003, 14:18 |
|
Обработка событий COMпонентов
|
|||
---|---|---|---|
#18+
Правильно , только ИМХО способ через IMPLEMENTS лучше. А что бы все генерилось нужно перетащить соответствующий интерфейс из окна Object Browser... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 16:10 |
|
Обработка событий COMпонентов
|
|||
---|---|---|---|
#18+
Я просто для чего все это затеял - для того, чтобы встроить возможности VFP в программу на Delphi. Fox конечно не умеет работать с компонентами Delphi, зато он отлично умеет работать с COM объектами, особенно с IDispatch и ITypeInfo, ITypeComp (через IDispatch->GetTypeInfo->ITypeBind не знаю почему, но этого требует VFP, в смысле обязательной реализации ITypeComp). Для того, чтобы встроить в прогу на Делфи все эту хрень нужно просто создать в Дельфях прокси класс, который переводит TPersistent через RTTI в IDispatch(обязательно с реализацией ITypeInfo(GetTypeInfo,GetTypeInfoCount,где больше всего глюков, ITypeComp). В общем все у меня пока отлично работает (из Делфи): Типа: SCAN Self.ProgressBar1.Position = INT(RECNO()/RECNCOUNT()*100) ENDSCAN Проблема в том, что в Делфи в рантайм можно получить информацию только о published свойсnвах и событиях классов. О методах там речи даже и не ведется, а хотелось бы конечно в рантайм иметь возможность исполнять и методы компонетов. Напрмер чем плох Фоксовский код : Мемо1.Clear() Вот над этим я сейчас и работаю. Но это конечно только присказка..... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 22:14 |
|
|
start [/forum/topic.php?fid=41&tid=1598377]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 398ms |
0 / 0 |