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

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

IMAGE [D5]


msys ©   (2001-12-21 13:30:00) 

ПРИ ДВИЖЕНИИ ИМАГА МИГАЕТ .
КАК ЭТО ПРЕКРАТИТЬ ?
ПОД DELPHI Я НЕ УМЕЮ ПРОРИСОВЫВАТЬ ИМАГУ В ПАМЯТИ.
НАУЧИТЕ !!!


Yaro   (2002-01-07 00:49:00) [1]

Люди, давайте обсудим принцип "рисование на разных экранах". Я такое под DOC"ом делал на паскале еще, но никак не могу добиться реальных FPS"ов в Delphi. Полставил DelphiX, не могу раздуплиться как работать с помощью DXDraw (поможете? мне массив изобразить надо!!! он изменяется, если это существенно). Рисовал через DXPaintBox, на DeskTop"e, но реальной скорости так и не добился.
Что посоветуете?


Snake   (2002-01-06 16:51:00) [2]

Понял.
1. В ACDSee двигаются images на ScrollBox"е. Можешь сам накидать на эту штуку кучу имэйджев и попробовать - все будет ОК.
2. Картинку в Image ты грузишь хоть и из файла :), но хранится она скорее всего в Image.Picture.Bitmap или Graphic, это не важно, что она из файла. Из файла она прогружается только оди раз. Image - это всего лишь эдакая удобная оболочка для картинок с кучей прибамбасов ;)
3. MouseMove ты можешь отследить у любого TControl, в т.ч. TPanel и рисовать в этом месте все, что хочешь.
Удачи.


MK   (2002-01-06 16:34:00) [3]

Snake, Image я уже двигаю через MouseMove. Причем Image находится на Panel. Картинка, загруженная из файла (что важно), двигается, но мерцает. Если ACDSee у тебя установлен, то можешь сам посмотреть: в Preview прекрасно двигается...


Snake   (2002-01-06 15:33:00) [4]

Сам контрол Image ты затрахаешься двигать. Может быть и есть какой-то лаз, я не знаю. Но если желаешь, можешь попробовать полезть в API и перехватывать его месааги на перерисовку. И канва никуда не двигается, ты просто на ней рисуешь, что и делается сейчас, только вместо тебя это делает виндовоз, причем как всегда коряво.


MK   (2002-01-06 14:38:00) [5]

Что-то ничего не понятно...
Во-первых csOpaque куда пихать: в Image или Control, на котором Image
Во-вторых, если Image загружен из файла и перемещается через MouseMove, т.е. именно TImage, а не canvas; то неужели нет механизмов сделать перемещение без мигания?..


Snake   (2002-01-06 14:11:00) [6]

Извини, кода не помню, но чтобы не мигало, надо забыть про Image. Рисовать надо по принципу DX - на разных экранах. Смысл такой, создаешь некий канвас или bitmap, на нем при помощи, например, Draw, рисуешь нужные объекты, затем, в какой-то момент, при помощи BitBlt рисуешь на нужный канвас, например формы (копируешь), созданный ранее рисунок.


Tolik2002   (2002-01-06 13:23:00) [7]

А ты пробуй рисовать на Canvs"е, только когда рисуешь в новом месте то не удалей все изображение, а сначала нарисуй новое, а потом только восстанавливай те места, которые "освободились" от твоей картинки.


Song   (2001-12-24 09:45:00) [8]

ControlStle:=ControlStyle+[csOpaque];


Builder   (2001-12-21 14:29:00) [9]

use bitblt


olban   (2001-12-21 14:16:00) [10]

Какая разница, Делфи или нет, под Win принципы все одинаковы, ищешь Canvas компонента и на нем рисуешь. А мигает он, скорее всего, потому что стирает старое изображение, а потом рисует новое. А чаше всего можно просто рисовать поверх.


Наверх

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