Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Обновление элемента

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
Rus77



Зарегистрирован: 06.03.2006
Сообщения: 53

СообщениеДобавлено: Чт Ноя 20, 2008 11:53 am    Заголовок сообщения: Обновление элемента Ответить с цитатой

Задача в частности. Есть линия. Я ее преобразую в массив отрезков ("видимые", "невидимые"). После преобразования на чертеже меняю исходную линию на полученный массив (у меня это фрагмент). Меняю в классе при использовании ILocateCommandEvents интерфейса.
Вопрос. Почему у меня не обновляется элемент на виде? При скроллинге или "Обновить вид" - все нормализуется, появляется новый элемент, но сразу после отрисовки нового элемента на виде старый элемент видится поверх.
Цитата:

Private Sub ILocateCommandEvents_LocateFilter(ByVal element As element, point As Point3d, Accepted As Boolean)
'MsgBox "ILocateCommandEvents_LocateFilter"
If flMode Then
objInters.setSourceElem element, False
' получение массива отрезков
Set curElems = objInters.getBackElement
' удаление старого элемента
element.Redraw msdDrawingModeErase
ActiveModelReference.RemoveElement element
' добавление нового
ActiveModelReference.AddElement curElems
curElems.Rewrite
curElems.Redraw msdDrawingModeNormal
' обновление всех видов
Application.RedrawAllViews msdDrawingModeNormal
' все равно не обновляется.....((((((((((((((((((((((
Else
objInters.setSourceElem element, True
flMode = Not flMode
End If
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Чт Ноя 20, 2008 1:02 pm    Заголовок сообщения: Ответить с цитатой

Не совсем понятно что делает
Set curElems = objInters.getBackElement
curElems проверен?
С ним все в порядке?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Rus77



Зарегистрирован: 06.03.2006
Сообщения: 53

СообщениеДобавлено: Чт Ноя 20, 2008 4:54 pm    Заголовок сообщения: Ответить с цитатой

objInters.getBackElement
Возвращается фрагмент, состоящий из отрезков исходной линии с разными стилями. Элемент в полном порядке. При обновлении окна появляется.
Проблема в том, что при добавлении элемента старый элемент остается видимым до переотрисовки вручную.
Что значит "в порядке"? Что может быть не так? Элемент формируется функцией CreateCellElement1.
Просто такое впечатление, что вид не обновляется.......почему - не пойму. Может переменная какая влияет на это?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Пт Ноя 21, 2008 8:29 am    Заголовок сообщения: Ответить с цитатой

Rus77 писал(а):

Что значит "в порядке"? Что может быть не так? Элемент формируется функцией CreateCellElement1.

Я бы проверил все параметры элемента в Watch window
Если там все ОК, то действительно странно... Don't know
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group