Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2013, 00:08   #1
SantaHim
Новичок
Джуниор
 
Регистрация: 07.06.2013
Сообщений: 2
Восклицание научите двигать кнопку!

помогите двигать кнопку. есть код, но условия перекрываются. как сделать так чтобы они не перекрывались?
кнопка двигается вниз и влево. нужно сделать так, чтобы она двигалась еще вверх и вправо.

пожалуйста помогите!
мой код:
Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   begin
          if (x>btn17.Left) and (x<(btn17.Left+btn17.Width)) and (y>btn17.top-5) then
       begin
         btn17.top:=btn17.top+1;
       end;
 
          if (y>btn17.Top)and (y<btn17.Top+btn17.Height) and (x>btn17.Left-5) then
        begin
          btn17.left:=btn17.left+1;
        end;
 
   end;
 
  begin
    if  (y>btn17.Top)and (y<btn17.Top+btn17.Height) and (x>btn17.Left+btn17.Width+5)
 
    then btn17.left:=btn17.left-1;
 
    if (x>btn17.Left) and (x<(btn17.Left+btn17.Width)) and (y>btn17.top+btn17.Height+5)
 
    then btn17.top:=btn17.top-1;
  end;
end;
суть: важно чтобы она двигалась именно в указанной процедуре. т.е. без нажатия на саму кнопку.

Последний раз редактировалось ACE Valery; 07.06.2013 в 00:12.
SantaHim вне форума Ответить с цитированием
Старый 07.06.2013, 13:15   #2
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

Цитата:
кнопка двигается вниз и влево. нужно сделать так, чтобы она двигалась еще вверх и вправо.
непонятно куда нужно двигать кнопку.
revizor вне форума Ответить с цитированием
Старый 07.06.2013, 14:26   #3
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

может все проще чем кажется?

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
btn17.Left:= x;
btn17.Top:= y;
end;
NewLamer&Programer вне форума Ответить с цитированием
Старый 07.06.2013, 15:23   #4
SantaHim
Новичок
Джуниор
 
Регистрация: 07.06.2013
Сообщений: 2
По умолчанию

кнопка должна двигаться от мыши на 1 пиксел в ту сторону, в какую ее толкает мышь
SantaHim вне форума Ответить с цитированием
Старый 07.06.2013, 16:14   #5
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Const a = 1; b = 10;
begin
if (x = btn.Left-a) and (y > btn.Top) and (y < (btn.Top + btn.Height))
then btn.Left:= btn.Left + b;
if (y = btn.Top-a) and (x > btn.Left) and (x < (btn.Left + btn.Width))
then btn.Top:= btn.Top + b;
if (x = btn.Left+btn.Width+a) and (y > btn.Top) and (y < (btn.Top + btn.Height))
then btn.Left:= btn.Left - b;
if (y = btn.Top+btn.Height+a) and (x > btn.Left) and (x < (btn.Left + btn.Width))
then btn.Top:= btn.Top - b;
end;

Последний раз редактировалось NewLamer&Programer; 07.06.2013 в 16:16.
NewLamer&Programer вне форума Ответить с цитированием
Старый 07.06.2013, 16:23   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

это ваш код без исправлений только переформатирован для наглядности и компактности. В комментариях приведены наводящие вопросы для исправления.
Код:
 if (x>btn17.Left) and (x<(btn17.Left+btn17.Width)) and (y>btn17.top+btn17.Height+5) then btn17.top:=btn17.top-1; // мышка снизу и кнопка двигается вверх
 if (x>btn17.Left) and (x<(btn17.Left+btn17.Width)) and (y>btn17.top-5)              then btn17.top:=btn17.top+1; // а как будет что мышка сверху?

 if (y>btn17.Top)  and (y<btn17.Top+btn17.Height)   and (x>btn17.Left-5)             then btn17.left:=btn17.left+1; //мышка справа и кнопка двигается влево 
 if (y>btn17.Top)  and (y<btn17.Top+btn17.Height)   and (x>btn17.Left+btn17.Width+5) then btn17.left:=btn17.left-1; //а как будет что мышка слева?
Код:
if (x>left)   and (x<right)   and (y>top-D)  and (y<top)      then stepdown;
if (x>left)   and (x<right)   and (y>bottom) and (y<bottom+D) then stepup;
if (x>left-D) and (x<left)    and (y>top)    and (y<bottom)   then stepright;
if (x>right)  and (x<right+D) and (y>top)    and (y<bottom)   then stepleft;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.06.2013 в 16:33.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу мышкой двигать картинку на форме PaulRom Microsoft Office Access 8 25.11.2011 11:54
Двигать курсор из точки А в точку Б bagos Общие вопросы Delphi 8 20.01.2011 02:06
Двигать объект по прямой y = kx Dalef Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 04.10.2010 16:11
Как двигать картинку клавишами Naroto HTML и CSS 2 27.04.2010 15:32
как двигать точку на графике EXCEL? 666buster666 Microsoft Office Excel 6 07.03.2010 00:59