Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизПроблемы с отображением TWinControl Найти похожие ветки
← →
Суслик © (2005-09-26 16:37) [0]Код, поясняющий пример http://webfile.ru/539693
Суть такая:
1. Я в runtime создаю TWinControl. Кладу его на форму.
2. Делаю ему alClient.
3. На созданный контрол кладу несколько других контролов.
4. Если у окна изменять размеры мышкой, то изображение подергивается.
Если сделать тоже самое, но не с TWinControl, а, например, с TPanel, то такого эфферкта не видно.
Вопрос:
Как мне сделать так, чтобы МОЙ потомок TWinControl также перерисовывался без моргания?
← →
DiamondShark © (2005-09-26 17:22) [1]Ленивый ты.
Минимальное различие между TPanel и TWinControl, приводящее к требуемому эффекту:
kC.ControlStyle := kC.ControlStyle + [csAcceptsControls];
← →
Суслик © (2005-09-26 17:29) [2]про лень ты зря - весь extctrls пролазил :)
Делал. не помогает. Начинает моргать, но не так.
Посмотри внимательно - все равно моргает, только меньше.
← →
Leonid Troyanovsky © (2005-09-26 17:37) [3]
> DiamondShark © (26.09.05 17:22) [1]
> Минимальное различие между TPanel и TWinControl, приводящее
> к требуемому эффекту:
>
> kC.ControlStyle := kC.ControlStyle + [csAcceptsControls];
>
+ csOpaque
--
Regards, LVT.
← →
Суслик © (2005-09-26 17:40) [4]Спасибо, Леонид.
Но все равно немного моргает.
Я все это перепробовал.
В действительности у меня есть мысль - может быть разница в том, что TPanel сам себя отрисовывает?
← →
Суслик © (2005-09-26 17:42) [5]Уточню для Дмитрия и Леонида.
TEdit моргать перестал, но моргание рамки groupbox"а осталось.
← →
Leonid Troyanovsky © (2005-09-26 18:05) [6]
> Суслик © (26.09.05 17:40) [4]
> В действительности у меня есть мысль - может быть разница
> в том, что TPanel сам себя отрисовывает?
Если взглянуть на TCustomPanel.Paint, то там ни найти ничего сверхестественного. (Оно, IMHO, могло было быть где-нибудь в Invalidate)
Т.е., стоит лишь смотреть на то, что отличает TCustomPanel vs TWinControl.
Например, для изменения размеров это style not CS_HREDRAW, CS_VREDRAW.
--
Regards, LVT.
← →
Суслик © (2005-09-26 18:15) [7]
> [6] Leonid Troyanovsky © (26.09.05 18:05)
Помогло. Спасибо.
Я это различие видел, но т.к. поиском по установленной у себя msdn за 2004 год не нашел ничего про CS_HREDRAW, то не придал этому значения.
Во! Странно ни поиском, ни индексом про CS_HREDRAW не находится, но в тексте, описывающем стили классов, есть.
Наверное msdn кривая.
← →
Leonid Troyanovsky © (2005-09-26 18:18) [8]
> Leonid Troyanovsky © (26.09.05 18:05) [6]
> > В действительности у меня есть мысль - может быть разница
> > в том, что TPanel сам себя отрисовывает?
>
>
> Если взглянуть на TCustomPanel.Paint, то там ни найти ничего
> сверхестественного.
За исключением, м.б. Canvas.Brush.Style := bsClear;
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.064 c