Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Проблемы с отображением 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1127387729
nastya
2005-09-22 15:15
2005.10.16
Наследование и виртуальные функции


14-1127557420
alexbou
2005-09-24 14:23
2005.10.16
Delphi 2005 Update 4 Release Candidate ???


1-1127756905
Mameluke
2005-09-26 21:48
2005.10.16
Преобразование указателя в строку


1-1127647085
вопрос
2005-09-25 15:18
2005.10.16
максимально допустимая величина массива


11-1108015146
Blure
2005-02-10 08:59
2005.10.16
Не прорисовываются иконки в TKolTreeView