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

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

Мерцание и Двойная Буферизация [D7, WinXP]


Страницы:   1 2

Паша555 ©   (2005-01-11 01:53:00) 

Помогите решить проблему.
На форме по таймеру происходит перемещение TLabel.
Без Двойной Буферизации - мерцание
При включении - недостаточная скорость перемещения метки....
При добавлении графики (TImage)на форму - еще более уменьшается скорость передвижения слова.....

Какими путями можно избежать всех вышеописанных минусов ?
(OpenGL или DirectX?????)
Заранее спасибо !


Паша555   (2005-01-13 00:32:00) [21]

Неужели никто не может посоветовать как правильно сделать ?


Паша555   (2005-01-12 12:10:00) [22]

С буфером - это 1 способ ?
И можно ли обеспечить  скорость движения слова (примерно прохождение 1000 пикселей за 2 секунды с однопиксельной итерацией)?
Кстати, спасибо огромное !


Поручик   (2005-01-12 12:02:00) [23]

Из этих двух способов быстрее с буфером, но если картинка у тебя меньше 500х500, то разницы не заметно.
И еще маленький совет: Рисуй сначало все на TBitmap, и только потом выводи на экран, так быстрее.


Паша555   (2005-01-12 11:59:00) [24]

Извините за назойливость,
но как будет быстрее к точки зрения прорисовки ? (см назв. темы)
И если можно - поподробнее....


Поручик   (2005-01-12 11:56:00) [25]

Тогда надо сохранять часть картинки с надписью в буфур (заведи еще один TBitmap)
Действия такие:
Скопировал участок, где надпись должна быть
Нарисовал надпись
Восстановил участок
Скопировал новый участок
Нарисовал новую надпись
...

Если с этим возиться неохото, то просто перерисовывай заново картинку, а на нее надпись клади


Паша555   (2005-01-12 11:49:00) [26]

Спасибо, поручик, но это не совсем то..... или я не допираю....
Надо чтобы текст с прозрачным фоном двигался по картинке....
А эта функция заливает все белым....


Поручик   (2005-01-12 11:37:00) [27]

PatBlt(Form1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);


Паша555   (2005-01-12 11:25:00) [28]

Понимаете, если я заливаю прямоугольник кистью с прозрачнм фоноом, это не нпомогает - предыдущее слово остается.....


megabyte-ceercop   (2005-01-12 07:27:00) [29]

Canvas.FillRect()
заливка прямоугольника. (название процедуры возможно не совсем точное). Пользуйся toolip`ами.


Паша555   (2005-01-11 23:04:00) [30]

И снова спасибо, хотя я балбес должен был сам мозгами пошевелить :)
НО вот уже час мучаюсь с проблемой:
ПРи попытке двигать текст по канвасу с помощью координат canvas.TextOut старый текст остается и смазывается к новым.
Думаю надо перед выводом текста с новыми координатами убирать старый путем заливки канваса прозрачным фоном - но как - не доходит......


Jel   (2005-01-11 20:26:00) [31]

Canvas.Font


Паша555   (2005-01-11 20:13:00) [32]

Спасибо большое за ответ, но возник еще один вопрос
при использовании canvas.TextOut как можно изменять размер, цвет, шрифт и т.д. ???
Спасибо !


Поручик   (2005-01-11 02:53:00) [33]

Если нужна надпись, рисуй ее с помощью canvas.TextOut(), если картинка, то с помощью canvas.draw() смотри про них в справке.Ни в коем случае не двигай image это ТОРМОЗА, а про OGL и DX пока забудь.
Удачи.


Страницы:   1 2

Наверх

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