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

Вниз

Мерцание при прорисовке   Найти похожие ветки 

 
Washington ©   (2007-12-15 01:05) [0]

В событиии формы onPaint прорисовал заголовок формы. В результате - всё нормально рисуется, но при появлении формы мерцает. противно как-то. Если кто знает, подскажите, как убрать сие?


 
Германн ©   (2007-12-15 01:14) [1]


> Washington ©   (15.12.07 01:05)
>
> В событиии формы onPaint прорисовал заголовок формы.

Эээ. Заголовок формы вроде как относится к неклиентской части окна. Так при чем же тут событие onPaint?


 
Washington ©   (2007-12-15 01:18) [2]

А где тогда прописывать?


 
Washington ©   (2007-12-15 01:20) [3]

Вернее я не совсем заголовок прорисовываю, я с помощью регионов убрал стандартный (в собтии onCreate), и в клиентской части нарисовал свой.


 
korneley ©   (2007-12-15 01:21) [4]


> ...В результате - всё нормально рисуется, но при появлении
> формы мерцает...

Какой формы? Главной? Или какой другой?


 
Washington ©   (2007-12-15 01:24) [5]

Да, главной


 
Германн ©   (2007-12-15 01:25) [6]


> я с помощью регионов убрал стандартный

Имхо, "с помощью регионов" убрать стандартный нельзя.


 
Германн ©   (2007-12-15 01:27) [7]


> Германн ©   (15.12.07 01:25) [6]
>
>

То бишь это проблема "мухи и котлеты".


 
Washington ©   (2007-12-15 01:29) [8]


Region:=CreateRoundRectRgn(0,Height-ClientHeight,Width,ClientHeight,20,20);
SetWindowRgn(Handle,Region,True);

Может быть стандартный заголовок не убирается, но его не видно - факт


 
korneley ©   (2007-12-15 01:35) [9]

А вот такой перректальный метод?
 AlphaBlend := true;
 AlphaBlendValue := 0;
После отрисовки
 AlphaBlendValue := 255;
Можно попробовать "всплыть" даже :)


 
Германн ©   (2007-12-15 01:35) [10]


> Может быть стандартный заголовок не убирается, но его не
> видно - факт
>

А может твоё мерцание это как раз прорисовка стандартного заголовка. Который прорисовывается виндой, а потом затирается твоим кодом?


 
Германн ©   (2007-12-15 01:46) [11]

Ведь если у формы (окна) есть заголовок, то этому окну винда обязательно пошлет WM_NCPAINT "при появлении" формы (окна ). И что-то там отрисуется. А потом твой регион эту область перерисует. Ну и как тут не мерцать?


 
homm ©   (2007-12-15 07:57) [12]

> [3] Washington ©   (15.12.07 01:20)
> я с помощью регионов убрал стандартный

А что, менее ректальных способов для этого не нашлось? см. BorderStyle


 
Washington ©   (2007-12-19 11:13) [13]

Подниму тему )
BorderStyle=bsNone


 
Washington ©   (2007-12-19 11:23) [14]


> korneley ©   (15.12.07 01:35) [9]

Всё равно мерцает


 
{RASkov} ©   (2007-12-19 11:26) [15]

> [14] Washington ©   (19.12.07 11:23)
> Всё равно мерцает

Знать бы еще, как и что ты там рисуешь.....


 
Washington ©   (2007-12-19 12:23) [16]


> {RASkov} ©   (19.12.07 11:26) [15]

Нет, вот это уж лучше вам не знать :))))


 
{RASkov} ©   (2007-12-19 12:33) [17]

> [16] Washington ©   (19.12.07 12:23)

Ну как знаешь.....

> Всё равно мерцает

> как убрать сие?

тогда ответ - Фик знает, да поможет тебе....
:о)



Страницы: 1 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
2-1197950727
Sergiu
2007-12-18 07:05
2008.01.20
Как считывать данные с COM,LPT порта и нарисовать график


15-1197964727
Alexey
2007-12-18 10:58
2008.01.20
Программы не запускаются под Win2003. Что делать?


2-1198424105
Бэтман
2007-12-23 18:35
2008.01.20
Проблема с печатью quick report


2-1198155687
Stepper
2007-12-20 16:01
2008.01.20
Как в Delphi указать путь компиляции проекта? Типа: С:/Executable


2-1198076609
new_user)
2007-12-19 18:03
2008.01.20
Как перемножить