Главная страница
    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.043 c
4-1124183268
volser
2005-08-16 13:07
2005.10.16
Изменение рабочего стола


3-1125772095
Eagle Owl
2005-09-03 22:28
2005.10.16
Подключение к MySQL при помощи ADO + MyODBC


8-1117022740
plosion
2005-05-25 16:05
2005.10.16
MIDI


1-1127326732
френк
2005-09-21 22:18
2005.10.16
GetProcAddress


3-1125834784
Кабан
2005-09-04 15:53
2005.10.16
Выподающий список.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский