All Forums
 Категория Visio
 Форум Вопросы и ответы
 про CellCanged
Author Previous Topic Topic Next Topic  

TuzhibaevTA

Russia
85 Posts

Posted - 06/23/2005 :  18:58:28
День добрый Уважаемые!
В Visio не могу объявить событие CellChanged :( через AddAdvise
помогите разобраться с бедой!

Тужибаев Тимур

Tumanov

Russia
1198 Posts

Posted - 06/23/2005 :  20:08:11
Проблемы-то в чем - в CellChanged или AddAdvise?
Другие события работают нормально?
В SDK кажется хороший пример был - он работает?
Go to Top of Page

TuzhibaevTA

Russia
85 Posts

Posted - 06/24/2005 :  06:52:00
quote:
Originally posted by Tumanov

Проблемы-то в чем - в CellChanged или AddAdvise?
Другие события работают нормально?
В SDK кажется хороший пример был - он работает?



Проблема в том что у меня не получается переделать этот пример для CellChanged. Тоесть я либо чтото упускаю, либо чето не работает, но сам пример без изменений работает прекрасно.
Вот то как я изменил код из примера:

Implements Visio.IVisEventProc

'Declare visEvtAdd as a 2-byte value
'to avoid a run-time overflow error
Private Const visEvtAdd% = &H8000

Private Function IVisEventProc_VisEventProc( _
ByVal nEventCode As Integer, _
ByVal pSourceObj As Object, _
ByVal nEventID As Long, _
ByVal nEventSeqNum As Long, _
ByVal pSubjectObj As Object, _
ByVal vMoreInfo As Variant) As Variant

Dim strMessage As String

'Find out which event fired
Select Case nEventCode
Case visEvtCell
strMessage = "Cell Changed(" & nEventCode & ")"
Case Else
strMessage = "Other (" & nEventCode & ")"
End Select

'Display the event name and the event code
Debug.Print strMessage

End Function

_______________________________________________________

Option Explicit

Private mEventSink As clsEventSink

Dim vsoCellEvents As Visio.EventList
Dim vsoCellSavedEvent As Visio.Event

'Declare visEvtAdd as a 2-byte value
'to avoid a run-time overflow error
Private Const visEvtAdd% = &H8000

Public Sub CreateEventObjects()
Set mEventSink = New clsEventSink
Set vsoCellEvents = ActivePage.Shapes(1).Cells("Width").EventList

Set vsoCellSavedEvent = vsoCellEvents.AddAdvise( _
visEvtCell , mEventSink, "", "Cell Changed...")

End Sub

В итоге ошибка.


Тужибаев Тимур
Go to Top of Page

TuzhibaevTA

Russia
85 Posts

Posted - 06/27/2005 :  07:49:11
Проблему решил средствами .NET, через eventhandler

Тужибаев Тимур
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 06/27/2005 :  21:50:03
Ну и хорошо...
А то здесь я как-то не очень уверен, как правильно сделать.
Во-первых, кажется код должен быть двойным, не visEvtCell, а visEvtMod+visEvtCell
А, во-вторых, опять же кажется, к EventList от Cell это не прилепляется. К Document прилепляется, а помельче не хочет.
Go to Top of Page

TuzhibaevTA

Russia
85 Posts

Posted - 06/28/2005 :  07:24:42
quote:
Originally posted by Tumanov

А, во-вторых, опять же кажется, к EventList от Cell это не прилепляется. К Document прилепляется, а помельче не хочет.




Да, эта проблема и тормознула меня, решить ее в лоб я не смог, пришлось обходными путями.

Тужибаев Тимур
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)