Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1127666296
fastorla
2005-09-25 20:38
2005.10.16
Как можно подчепить SubItem в компоненте TreeView1


14-1127399020
Карелин Артем
2005-09-22 18:23
2005.10.16
Как давно была установлена Виндовс?


2-1127066518
x-goody
2005-09-18 22:01
2005.10.16
Как связать объект с .exe файлом?


14-1127769010
TButton
2005-09-27 01:10
2005.10.16
Драйвер модема для Siemens M65


14-1127469588
ilya39
2005-09-23 13:59
2005.10.16
VS .Net 2002





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский