|
|
|
Обработка событий 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&msg=32120640&tid=1598377]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 254ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...