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