Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
Необходимо обрабатывать события от ActiveX, ссылку на который получаю во время выполнения. Делаю так: Вариант 1) Private WithEvents ptable As OWC10.PivotTable Public Sub SetPivotTable(a_ptable As Object) ' вот эта самая ссылка Dim obj As Object Set ptable = a_ptable ' <- Вот тут валится с "Type Mismatch" LabelText.Caption = ptable.Version End Sub Вариант 2) (пробуем избежать Type Mismatch) Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Private WithEvents ptable As OWC10.PivotTable Public Sub SetPivotTable(a_ptable As Object) Dim obj As Object Set obj = a_ptable CopyMemory ptable, obj, 4 LabelText.Caption = ptable.Version End Sub ' ругается "Object variable or With block variable is not set" Вариант 3) (пробуем избежать Type Mismatch и предыдущего глюка) Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Private WithEvents ptable As OWC10.PivotTable Private ptabletmp As OWC10.PivotTable Public Sub SetPivotTable(a_ptable As Object) Dim obj As Object Set obj = a_ptable CopyMemory ptabletmp, obj, 4 Set ptable = ptabletmp ' <- ругается "Object or class does not support the set of events" LabelText.Caption = ptable.Version End Sub Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 12:33 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
Public Sub SetPivotTable(a_ptable As Object) Попробуй Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 14:55 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
Processor Public Sub SetPivotTable(a_ptable As Object) Попробуй Код: plaintext Та же фигня. Либо Type Mismatch, либо уже на CopyMemory валится :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 10:28 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
Поставь точку останова на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 11:34 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
Попробуй 1) Public Sub SetPivotTable(a_ptable As OWC10.PivotTable) 2) Public Sub SetPivotTable(a_ptable As Object) Dim ptr as Long ptr = ObjPtr(a_ptable) CopyMemory ptable, ptr, 4 LabelText.Caption = ptable.Version End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 14:23 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
AntonariyПопробуй 1) Public Sub SetPivotTable(a_ptable As OWC10.PivotTable) 2) Public Sub SetPivotTable(a_ptable As Object) Dim ptr as Long ptr = ObjPtr(a_ptable) CopyMemory ptable, ptr, 4 LabelText.Caption = ptable.Version End Sub 1) Не проходит - "Private object modules cannot be used in public object modules as parameters or return types..." 2) Оно нормально, если объект объявлен без "Withevents", а так - "Object variable or With block variable not set" :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 11:12 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
..и ещё вопрос в кучу.. Почитал http://www.ftponline.com/wss/2002_07/online/exchange_pcardoza_07_22_02/default.aspx Решил сделать по образу и подобию.. Вот так: Implements OWC10.IPivotControlEvents ..... Private Sub IPivotControlEvents_SelectionChange() End Sub Private Sub IPivotControlEvents_ViewChange(ByVal Reason As PivotViewReasonEnum) End Sub .... И тут самое интересное - доходим до метода CommandEnabled(...). Далее цитирую из MS OWC VB Reference: "Private Sub object_CommandEnabled (ByVal Command As Variant, ByVal Enabled As ByRef)" Как вам последний параметр? Точнее его тип? Object Browser такой же тип показывает.. Естественно это не компилится. А если через OleView посмотреть - то : [id(0x000003e8), helpcontext(0x0701910f)] void CommandEnabled( VARIANT Command, ByRef* Enabled); Вопрос: как сие ("ByRef* Enabled") на VB выразить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 11:38 |
|
||
|
Не могу перехватить событие от ActiveX
|
|||
|---|---|---|---|
|
#18+
SpaceDescent "Private Sub object_CommandEnabled (ByVal Command As Variant, ByVal Enabled As ByRef)" Как вам последний параметр? Точнее его тип? Object Browser такой же тип показывает.. Естественно это не компилится. А если через OleView посмотреть - то : [id(0x000003e8), helpcontext(0x0701910f)] void CommandEnabled( VARIANT Command, ByRef* Enabled); Вопрос: как сие ("ByRef* Enabled") на VB выразить? Этот вопрос отпал.. Чего стоит определение "interface ByRef : IDispatch" из OWC10.dll !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32606158&tid=2169212]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 334ms |

| 0 / 0 |
