Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > выходит за пределы окна


Автор: Гость_tonic 15.3.2005, 09:29
Вобщем существует проблема, сделал подобие "пятнашек" на рабочем столе,
НО возникла кой-какая проблемка:
при движении влево и вверх квадратика(за границы экрана), он как бы отскакивает от границы экрана, а при перемещении вправо и вниз он просто переходит на другую сторону экрана
smile
Вот что-то я и не могу решить как от этого избавится.
Подскажите пожалуйста, кто знает как сделать чтобы квадратик так же отскакивал и от других сторон экрана, и наоборот чтобы он мог "выходить" за пределы дисплея слева и сверху.
Заранее благодарю!

Автор: Guest 15.3.2005, 09:32
для более визуального понимания сказанного сделаное мной можно скачать
пример можно скачть здесь: http://ktirc.x-3m.info/zip/Desktop_15.zip

Автор: Snowy 15.3.2005, 10:19
Просто контролируй границы экрана, чтобы за них не выходило.
Так и должно быть, если ты указываешь отрисовку за пределами экрана, то такой перенос и будет.
Контролируй вручную. Размеры экрана известны.
Или не рисуй, если выходит за пределы, или обрезай изображение, чтобы рисовалась только та часть, которая влезает на экран.

Автор: eii111 12.4.2005, 18:14
Я делаю так

procedure SetClip;
var ClipRect: TRect;
begin
ClipRect.Left:=0;
ClipRect.Top:=0;
ClipRect.Right:=100;
ClipRect.Bottom:=100;
with ClipRect do
IntersectClipRect(Canvas.Handle,Left,Top,Right,Bottom);
end;

procedure ReSetClip;
begin
try
SelectClipRgn(Canvas.Handle,0);
except
end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)