Загрузить изображение в объект вне экрана TBitmap
. Затем, OnPaint
, или когда это подходит для вашего конкретного приложения, используйте BitBlt
или Canvas.Draw
, чтобы нарисовать прямоугольный образ TBitmap
на холсте. Подраздел должен начинаться с (X, Y)
на TBitmap
и иметь ширину и высоту, равные ClientWidth
и ClientHeight
формы соответственно.
Теперь отвечайте на события клавиатуры. Напишите обработчик событий FormKeyDown
и прослушайте Key = VK_LEFT
, Key = VK_RIGHT
, Key = VK_UP
и Key = VK_DOWN
(используйте оператор case
). Когда вы обнаружите нажатие такой клавиши, увеличьте / уменьшите X
или Y
, в зависимости от ситуации, и раскрасьте сцену снова, используя эту начальную точку.
Вы также можете реагировать на события MouseDown
, MouseMove
и MouseUp
для прокрутки с помощью мыши. Либо вы можете использовать только средний (MouseMove
): вы можете проверить, находится ли курсор рядом с краем формы, и, если это так, плавно прокрутить в этом направлении (например, с помощью TTimer
). Кроме того, вы можете установить флаг FMouseDown
на true
в MouseDown
и сбросить его на false
в MouseUp
. Затем в MouseMove
прокрутите растровое изображение с помощью дельты X-XOld
в направлении x, если FMouseDown
равно true
, и дельты Y-YOld
в направлении y. (Здесь X
и Y
- параметры обработчика события MouseMove
; (X, Y)
- текущая позиция курсора.) Процедура MouseMove
должна заканчиваться
XOld := X;
YOld := Y;
независимо от того, включен FMouseDown
или выключен.