| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как спрятать дочерний контрол в DesignTime? |
| Автор: StayAtHome 25.6.2004, 00:32 | ||
Созаю свой компонент на основе TCustomListBox. В нем для редактирования строк использую потомок от TCustomEdit, который появляется при определенных условиях, а по умолчанию не должен быть виден. В конструкторе от TMyListBox прописал что-то вроде
В качестве временного решения, я просто не прописываю Parent для TMyEdit если компонент находится в DesignTime -- он и не рисуется. Но как-то коряво это... Есть ли более правильное решение? |
| Автор: _hunter 25.6.2004, 16:08 |
| в TCustomListBox выпадающий список, скорее всего, создается в RunTime поэтому прятать его нет необходимости ( но не уверен рекомендую делать также |
| Автор: 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 разные компоненты теоретически могут поразному отрабатывать.... Лучше пользоваться тем, что железно работает, удовлетворяя условиям задачи. |