Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему мерцает Image? [D7, WinXP]


dmitrlast ©   (2006-04-21 04:58:00) 

При добавлении часов в программу мерцает Image согласно секундам. Как этого избежать?


DVM   (2006-09-04 11:07:00) [1]

Если это VCL то просто включить двойную буферизацию и не заниматься ерундой. Обновлять часы через Invalidate()
Если VCL не используется, то рисовать все в WM_PAINT и просто вызывать обработчик периодически.


Stexen   (2006-08-30 19:40:00) [2]


> Почему мерцает Image

Потому что это TImage


Eraser   (2006-08-29 20:36:00) [3]

> [0] dmitrlast ©   (21.04.06 04:58)

еще может помочь перекрытие сообщения WM_ERASEBKGND, имеет смысл использовать, если окно перерисовывется полностью при каждом вызове метода прорисовки.


AlexACD   (2006-08-29 20:33:00) [4]

Ага! Есть связь значит..
Отвечаю почему мерцает:
Есть такое сообщение каждому окошку виндовоза: WM_PAINT. Так вот по этому сообщению функция обработки сообщений окна должна рисовать окно. Класс Image при перерисовке стирает сначала содержимое (своего окошка), а потом рисует туда по новой. Избежать можно следующим образом: Сделай Имэйдж невидимым, и по таймеру перекидывай содержимое Image на канвас окна (главного или тоже Image, но видимого) с помошью BitBlt (Bit Block Transfer). По-моему, даже у канваса есть такой метод.


AlexACD   (2006-08-29 20:24:00) [5]

Проверка связи..


AlexACD   (2006-08-29 20:22:00) [6]

Проверка связи..


grisme   (2006-04-24 05:30:00) [7]

включи или организуй двойную буферизацию. {если хочешь, тройную ;)}


Серджинйо   (2006-04-24 02:41:00) [8]

Не добавлять часы...


SamBrook   (2006-04-21 10:31:00) [9]

Добавьте в OnCreate формы

Image.parent.doublebuffered:=true;


antonn   (2006-04-21 06:30:00) [10]

dmitrlast ©   (21.04.06 4:58)
При добавлении часов

каких?


Наверх

Титульная страница Поиск, карта сайта Написать письмо