Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: ded_yagyn от 06.04.18, 10:42:35

Название: UpCast объектов
Отправлено: ded_yagyn от 06.04.18, 10:42:35
Как по объекту подняться выше и увидеть его родителей?
Например, из отрезка получить в итоге IKompasDocument2D или KompasObject?
Сейчас приходится тянуть в интерфейсы с собой все эти параметры, хотя предполагаю, что Parent именно для этого и предназначен.
При попытке  ILineDimensions qq = (ILineDimensions)ILineDimension.Parent; выдает ошибку.
Название: Re: UpCast объектов
Отправлено: Sabahs от 06.04.18, 11:25:15
Суть вопроса непонятна, например, отрезок Вы откуда взяли?
Название: Re: UpCast объектов
Отправлено: ded_yagyn от 09.04.18, 16:11:59
К примеру, есть у меня общий обработчик, который смотрит что за объект.

И если это отрезок, то, к примеру, нарисовать еще один такой же. А значит, мне нужен контейнер.
А если это круг, то создать переменную, а для этого нужен IDocument2D.

А если овал, то вызвать сообщение компаса, а для этого уже нужен компас.

И я всю необходимую информацию ( компас, документ, контейнер) передаю, конечно, в обработчик, но хотелось бы минимизировать телодвижения и получать все это минимальными телодвижениями через UpCast.
Название: Re: UpCast объектов
Отправлено: 333 от 10.04.18, 13:22:14
см ILineDimension.Parent.Type