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

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

Прокрутка изображения [D7, Win2k]


Страницы:   1 2

seregka ©   (2005-03-30 15:07:00) 

У меня допустим есть изображение 2032х1524
НА форме у Image я ставлю 300х300. Как мне можно мышом прокрутить изображение исходного размера в пределах этих границ.


@!!ex   (2005-03-30 17:39:00) [21]

P.S. Все сообщения, естественно, относительно Image.
Если ты хочешь, чтобы мышой по картинке двигали.


@!!ex   (2005-03-30 17:36:00) [22]

Значица так. Объясняю. Может чего не правильно будет, не обусудь, с компонентами уже давно не работал.
И так:
Делаешь TBitMap размером 2032х1524.
Грузишь в него свою картинку.
Создаешь переменные:
BitMap:TBitMap;
XShift:integer = 0;
YShift:integer = 0;
MouseX,MouseY:integer;
На OnPaint Imag'a следующий код:
BitBlt(Image.Canvas.Handle,0,0,300,300,BitMap,XShift,YShift,SRC_COPY);
На MouseDown:
MouseX:=X;
MouseY:=Y;
На MouseUp:
MouseX:=0;
MouseY:=0;
На MouseMove:
XShift:=XShift+MouseX-X;
YShift:=YShift+MouseY-Y;
if XShift<0 then XShift:=0;
if XShift>2032-300 then XShift:=1732;
if YShift<0 then YShift:=0;
if YShift>1524-300 then YShift:=1224;
Image.Refresh;
За рабочесть кода не отвечаю, писал его без компилятора поблизости, но суть такая.


Страницы:   1 2

Наверх

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