Показать сообщение отдельно
Старый 20.11.2017, 14:05   #52
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

День добрый. И так, новая задачка пришла от куда не ждал.
Нужно:
1)создать блок
2)в него добавить панели
3)по окончании скрипта созданный блок делать не видимым (панели из него не отображаются в окне модели, в окне свойств выделен светло-серым)
С первыми двумя пунктами ни каких проблем не возникло (для наглядности в двух разных исполнениях):

Скрытый текст


b = BeginBlock('Block_1');
AddVertPanel(0,0,1000,1000,0);
EndBlock();
c = AddBlock('Block_2');
Panel = AddVertPanel(0,0,1000,1000,100);
Panel.Owner = c;
[свернуть]

а вот с третьим всё не так гладко. При использовании .Visible = false; на блоке, каким бы способом он не создавался, код не прерывается, всё отрабатывает, а по окончании просто не добавляет блок в модель.

Скрытый текст


b = BeginBlock('Block_1');
AddVertPanel(0,0,1000,1000,0);
EndBlock();
c = AddBlock('Block_2');
Panel = AddVertPanel(0,0,1000,1000,100);
Panel.Owner = c;
b.Visible = false;
c.Visible = false;
[свернуть]

Мысль 1) Visible срабатывает слишком хорошо и блока не видно даже в настройках модели, но для программы он есть. *Но материала из него нет и в смете, и восстановление видимости его не находит. Из чего делаю вывод что он просто удаляется программой.
Мысль 2) Visible не является применимой к блокам. *Но Block дочерний от List3D, а List3D дочерний от Object3, в котором и определён Visible. По этому к примеру команда alert(Block.Visible); безошибочно отрабатывает.
И так вопрос: как скрыть блок? Может кто ещё какие команды знает для работы с видимостью?
Sergenald вне форума   Ответить с цитированием Вверх