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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2012, 12:18   #1
soniag
 
Регистрация: 18.02.2012
Сообщений: 8
Вопрос Как назначить конечную координату X

Моя картинка начинает движение с координаты 160 по оси X, как сделать так, чтобы он дошла до координаты 200 и вернулась обратно...
Вообщем нужно создать бесконечное движение между двумя этими координатами)..что нужно добавить в программу?

Код:
procedure TForm1.shar;
begin
PosX:= PosX+VelX;
PosY:= PosY+VelY;
if PosX > ClientWidth - Image1.Width then
begin
PosX:= ClientWidth - Image1.Width;
VelX:= - VelX;
end
else if PosX < 160 then
begin
POsX:= 160;
VelX:= - VelX;
end;
       if PosY > ClientHeight - Image1.Width then
       begin
       POsY:= ClientHeight - Image1.Width;
       VelY:= - VelY;
       end
       else if PosY < 0 then
       begin
       POsY:= 0;
      VelY:= - VelY;
      end;
Image1.Left:= Round(PosX);
Image1.Top:= Round(39);
end;

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.02.2012 в 16:48.
soniag вне форума Ответить с цитированием
Старый 23.02.2012, 13:28   #2
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Можно, например, так. Только в моем примере двигается кнопка.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with Button1 do
  begin
    if (Tag <> 1) and (Tag <> 2) then
    begin
      Tag := 1;
      Left := 160;
    end;

    if Tag = 1 then
    begin
      Left := Left + 1;
      if Left >= 200 then
      begin
        Left := 200;
        Tag := 2;
      end;
    end
    else
    begin
      left := Left - 1;
      if Left < 160 then
      begin
        Left := 160;
        Tag := 1;
      end;
    end;
  end;
end;
Все это происходит в событии OnTimer компонента TTimer
kangreon вне форума Ответить с цитированием
Старый 23.02.2012, 13:47   #3
soniag
 
Регистрация: 18.02.2012
Сообщений: 8
По умолчанию

kangreon, спасибо!
оказывается всё гораздо проще
soniag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как назначить макрос гиперссылке? habirovr Microsoft Office Excel 12 02.09.2011 16:05
Как назначить макросам в надстройке горячие клавиши? leoparrd Общие вопросы .NET 0 01.09.2010 20:44
Как назначить приложению горячие клавиши mt10forex Помощь студентам 3 07.07.2010 16:03
Как изменить координату кнопки? AtiLin Общие вопросы C/C++ 7 02.07.2010 18:17
Как клавиши F, назначить макрос? valerij Microsoft Office Excel 7 06.06.2008 10:08