Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как спрятать дочерний контрол в DesignTime?


Автор: StayAtHome 25.6.2004, 00:32
Созаю свой компонент на основе TCustomListBox. В нем для редактирования строк использую потомок от TCustomEdit, который появляется при определенных условиях, а по умолчанию не должен быть виден. В конструкторе от TMyListBox прописал что-то вроде
Код
MyEdit.Visible:=False
, но это работает только в Run-time, а в Design-time TMyEdit все равно виден сверху на TMyListBox. Надыбал также константу стиля csNoDesignVisible но видимо я не вовремя ее добавляю к стилю TMyEdit'а, т. к. это не дает никакого эффекта.
В качестве временного решения, я просто не прописываю Parent для TMyEdit если компонент находится в DesignTime -- он и не рисуется. Но как-то коряво это... Есть ли более правильное решение?

Автор: _hunter 25.6.2004, 16:08
в TCustomListBox выпадающий список, скорее всего, создается в RunTime поэтому прятать его нет необходимости ( но не уверен smile.gif исходники не смотрел )
рекомендую делать также

Автор: StayAtHome 26.6.2004, 00:03
_hunter
Ты наверно имел ввиду TComboBox? Возможно это выход, но не нравится мне это. Перелопачивать все придется. Мне б просто спрятать...

Автор: Она 26.6.2004, 00:25
StayAtHome , у тебя нормальное решение, но если хочется все по правилам сделать- перектой метод Paint. Проверь там ComponentState на csDesigning и ничего не рисуй в дизайн тайме....

Автор: StayAtHome 26.6.2004, 01:40
Она
Спасибо! Попробую.
Но уж такой я надоедливый: кто мне обьяснит, почему ни простое Visible:=False в конструкторе, ни csNoDesignVisible не работает?!

Автор: z-END 26.6.2004, 09:25
StayAtHome насчет csNoDesignVisible незнаю, даже про такое и неслышал... а вот про Visible := False, так это понятно, ты сам представть что в DesignTime контролы в Invisible не показывались бы на форме... проблемм бы было необерешься...

Автор: Она 26.6.2004, 13:23
csNoDesignVisible - песня несколько из другой оперы чем csDesigning....
И этот флаг из ControlStyle разные компоненты теоретически могут поразному отрабатывать....
Лучше пользоваться тем, что железно работает, удовлетворяя условиям задачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)