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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 18:48   #1
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию Как заставить двигаться объект по форме

Как заставить двигаться объект по форме ? Например жму долго на кнопку вниз. Он едет вниз. Если просто сделать edit.top:=edit.top-1; то он сначала один раз дернется. а потом только поедет. А как сразу сделатьт чтобы моментально начал двигаться

Последний раз редактировалось mihali4; 10.11.2011 в 19:48.
ВалекFCRK вне форума Ответить с цитированием
Старый 09.11.2011, 18:56   #2
Хамяг
Форумчанин
 
Аватар для Хамяг
 
Регистрация: 22.08.2008
Сообщений: 105
По умолчанию

Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  MoveTimer.Enabled:=True;
  Moving:=Key;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  MoveTimer.Enabled:=False;
end;

procedure TForm1.MoveTimerTimer(Sender: TObject);
begin
  case Moving of
    VK_UP: Button1.Top:=Button1.Top-1;
    VK_DOWN: Button1.Top:=Button1.Top+1;
    VK_LEFT: Button1.Left:=Button1.Left-1;
    VK_RIGHT: Button1.Left:=Button1.Left+1;
  end;
end;
как-то так. интервал таймера отрегулируйте.
Хамяг вне форума Ответить с цитированием
Старый 10.11.2011, 16:03   #3
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
По умолчанию

вот летающая кнопка))

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Shape1: TShape;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
   

  end;

var
  Form1: TForm1;
  VelX, VelY, PosX, PosY: double;

implementation


{$R *.DFM}



procedure TForm1.FormCreate(Sender: TObject);
begin
  DoubleBuffered := true;
  VelX := 20;
  VelY := 10;
  PosX := random(ClientWidth);
  PosY := random(ClientHeight);
  Button1.Left := Round(PosX);
  Button1.Top := Round(PosY);
  Button1.Visible := true;
  Timer1.Interval := 80;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
// Текущая координата шарика + скорость
  PosX := PosX + VelX;
  PosY := PosY + VelY;

// Что бы шарик не вылетал за границы поля по ширине
// Если X координата шарика больше ширины формы - ширины самого //шарика то
  if PosX > ClientWidth - Button1.Width then
  begin
//X координата шарика присвоит значение ширина формы - ширина //шарика
    PosX := ClientWidth - Button1.Width;
// Включаем заднюю скорость) или меняем значение скорости на минус
    VelX := -VelX;
  end
  else if PosX < 0 then
  begin
    POsX := 0;
    VelX := -VelX;
  end;

// Здесь по аналогии только работаем с Y координатой
  if PosY > ClientHeight - Button1.Width then
  begin
    POsY := ClientHeight - Button1.Width;
    VelY := -VelY;
  end
  else if PosY < 0 then
  begin
    POsY := 0;
    VelY := -VelY;
  end;
// Перемещаем шарик в пространстве
  Button1.Left := Round(PosX);
  Button1.Top := Round(PosY);
end;
end.
Belarusn вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как заставить окружность двигаться в обратную сторону? phasha Помощь студентам 8 17.10.2011 18:54
Как заставить Image двигаться по прямой к указанной точке? Yougan Общие вопросы Delphi 6 30.05.2011 23:59
В форме элемент списка и текстовое поле, как заставить.... denisus Microsoft Office Excel 8 16.03.2011 01:27
как заставить компонент Shape двигаться по ступенькам Ogurez Помощь студентам 1 31.10.2010 11:07
Как создать объект на форме? tns-ka Microsoft Office Excel 2 13.12.2009 21:34