On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 09:26. Заголовок: Глюки при обработке события OnChange


Народ посмотрите, кто может. Тема такая: для работы программы требуется открытый инвенторовский чертёжный файл в котором есть хотя бы одно пользовательское свойство. Т.к. мы обрабатываем события то данную программу надо запускать из VB 6.0 (то я так просто напомнить)

Option Explicit
Private WithEvents oChange As Inventor.DocumentEvents
Private oApp As Inventor.Application

Private Sub Form_Load()
Set oApp = GetObject(, "Inventor.Application")
Set oChange = oApp.ActiveDocument.DocumentEvents
End Sub
Private Sub oChange_OnChange(ByVal ReasonsForChange As Inventor.CommandTypesEnum, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal Context As Inventor.NameValueMap, HandlingCode As Inventor.HandlingCodeEnum)
Dim oDrawingDoc As DrawingDocument
Set oDrawingDoc = oApp.ActiveDocument
oDrawingDoc.PropertySets(4).Item(1).Value = "2"

End Sub

Глюк в строке: oDrawingDoc.PropertySets(4).Item(1).Value = "2"
Просто помотрите у вас тоже в этом месте глюк или всё идёт нормально.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]





Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 12:11. Заголовок: Re:


Здесь, видимо рекурсия в скрытой форме. Попытка изменения свойства документа вызывает эту же процедуру.

Вот, вероятно, более корректный код:

Dim oDrawingDoc As DrawingDocument
Set oDrawingDoc = oApp.ActiveDocument
With oDrawingDoc.PropertySets(4).Item(1)
Select Case VarType(.Value)
Case vbString: .Value = "2"
Case vbBoolean: .Value = Not .Value
Case vbCurrency: .Value = 2#
Case vbInteger: .Value = 2
Case vbLong: .Value = 2
Case vbSingle: .Value = 2#
Case vbDouble: .Value = 2#
Case vbDate: .Value = Date
Case Else

End Select
End With

В данном случае, четвертое свойство, первый элемент у меня имеет тип даты

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 12:14. Заголовок: Re:


Этот код по событию изменения документа (в данном случае пользовательского свойства) работать не будет: действия внутри процедуры вызывают саму эту же процедуру.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 13:34. Заголовок: Re:


Десять тысячь лет назад последний раз запускал VB.....
Куда код вставлять надо. Если я всталяю в модуль проекта, то строка №2 рисует красным уже в модуле :(

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 13:44. Заголовок: Re:


А если в модуль формы, то ругаеца в строке3
User-difined type not difined

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 14:40. Заголовок: Re:


IgorT пишет:
цитата
А если в модуль формы, то ругаеца в строке3
User-difined type not difined

Возможно, не подключена библиотека Инвентора.
Вставлять надо в модуль формы.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 16:32. Заголовок: Re:


brigval

Рекурсия? Хммм.... не думаю...кстати подставил твой код и та же самая "песня"
Просто попробуй мой код и сообщи что он тебе выдаёт, может это у меня бейсик глючит.
IgorT

зайди в Project\References найди Autodesk Inventor Object Library
и всё запашет... до поры до времени

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.09.05 19:14. Заголовок: Re:


Антикульманист

Я точно выяснил (по крайней мере, для себя так решил), что измение свойства документа вызывает событие onChange. Пройди по шагам. Замучаешься F8 нажимать.
А начал я именно с твоего кода. После большого количества циклов Инвентор уходит в мир иной. Правда, перед этим предлагает послать сообщение его Родителям. Но это уже ничего не меняет.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.09.05 05:17. Заголовок: Re:


brigval

А ведь ты прав на счёт рекурсии, признаю.... но почему бы ему просто не зациклится бы? Хммм....
Блин вот же лажа.... а всё так хорошо начиналось....
Благодарю за участие...
Пойду на буржуйский форум, может они там что доброе скажут....

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.09.05 10:54. Заголовок: Re:


Антикульманист пишет:
цитата
а всё так хорошо начиналось....

У меня это было не раз :)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет