Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Границы формы


Автор: Des666 1.1.2007, 12:21
вот такой код 
Код

if key = VK_LEFT then shape1.Left:=shape1.Left-3;
if key = VK_RIGHT then shape1.Left:=shape1.Left+3;

Нужно сделать чтобы shape1 достигая края формы останавливался, не вся программа тормозилась а только Shape...
Заранее спасибо и с новым годом!!!

Автор: mr.Anderson 1.1.2007, 13:10
Могу предположить, что вот так:
Код

If( Key = VK_LEFT ) Then 
begin
 Shape1.Left := Shape1.Left - 3;

 If( Shape1.Left < 0 ) Then Shape1.Left := 0;
end;

Автор: Des666 1.1.2007, 13:12
sim7, 
Спасибо! Помогло!

Автор: Sunvas 1.1.2007, 13:14
Ну дык проверяй:
Код

if (key = VK_LEFT)and(shape1.Left>=3) then shape1.Left:=shape1.Left-3;    
if (key = VK_RIGHT)and(shape1.Left+shape1.width*2<=width) then shape1.Left:=shape1.Left+3;


Кажется так. Пишу по памяти. После НГ трудно соображать..

Автор: Des666 1.1.2007, 13:15
А терь с правой стороний косяк =( 

Автор: mr.Anderson 1.1.2007, 13:20
Des666, так я не понял - помогло или нет? Если да, то чего еще крутим? smile

Автор: Des666 1.1.2007, 13:22
помогло только с левой стороной формы а за проавую всёравно уезжает =)

Автор: mr.Anderson 1.1.2007, 13:23
Sunvas, а у вас в коде проверки на сдвиг вправо что за глупости в скобках? smile Зачем на два-то умножать? Просто тогда уж рисуем:
Код

if( Key = VK_RIGHT ) and ( shape1.Left + shape1.Width <= FMain.Width ) then shape1.Left := shape1.Left+3;

Вот так будет работать. 

P.S. Здесь FMain - главная форма.

Автор: Des666 1.1.2007, 13:30
Всё равно немного но уходит за правый край...

Автор: VICTAR 1.1.2007, 14:36
И будет уходить, используйте не Width, а ClientWidth. Тоже самое с Height.

Автор: Romikgy 1.1.2007, 14:48
и -3 добавь smile

Автор: mr.Anderson 1.1.2007, 15:09
А про ClientWidth и впрямь... я и забыл об этом свойстве.

Автор: pomogite 14.1.2007, 11:57
А как тогда сделать с LEFT и UP... у меня так и не получилось...
С DOWN получилось а с остальными нет...

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