![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное позиционирование объектов. [D7]
Риг © (2009-08-23 14:15:00)Как программными средствами поместить объект на передний план?
Имеется: ScrollBox, на котором изначально расположено несколько объектов.
Что происходит:
В потоке динамически создаем Label, в качестве родителя указываем наш ScrollBox.
В итоге созданный Label отображается в боксе, но перекрывается объектами, уже расположенными там.
Процедуры: SendToBack и BringToFront не меняют ситуации.
Заранее благодарю за ответ.
Юрий Зотов (2009-08-23 15:00:00) [1]> Риг (23.08.09 14:42) [4]
Если проблема только в Label, то вместо него можно просто использовать TStaticText. Тогда и панель не нужна будет.
Риг (2009-08-23 14:42:00) [2]Благодарю всех за ответы ) Теперь все понятно :)
Юрий Зотов (2009-08-23 14:26:00) [3]Самый простой выход из этой ситуации - создать панель размером с Label и положить ее на ScrollBox, а Label класть уже на эту панель.
{RASkov} (2009-08-23 14:24:00) [4]> Процедуры: SendToBack и BringToFront не меняют ситуации.
Все работает как нужно, только не стоит забывать о том, кто на ком может лежать, а кто нет...
> В итоге созданный Label отображается в боксе, но перекрывается
> объектами
Отсюда вопрос: Какими объектами перекрывается? Может Лабелу, как ГрафОбъекту и не суждено никогда быть выше?
Юрий Зотов (2009-08-23 14:23:00) [5]Все потомки TGraphicControl (включая TLabel) - это графические контролы. То есть, просто рисунки Они не имет своей собственной канвы и рисуются непосредственно на parent'е. Как рисунки на крышке стола.
Все потомки TWinControl - это оконные контролы. То есть, полноценные окна. Они имеют свою собственную канву и рисуются поверх parent'а. Как предметы, лежащие на той же крышке стола.
Поэтому графический контрол принципиально не может оказаться поверх оконного, если имеет общий с ним parent.