Показать сообщение отдельно
  #9  
Старый 20.01.2012, 09:51
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Цитата:
движение это только иллюзия
время тоже иллюзия
PHP код:
type
  TIllusion 
= class
  private
    
itTControl;
    
stepstepsInteger;
    
x0y0Integer;
    
dxdydouble;
    
timerTTimer;
  public
    
constructor Create(aitTControlxyastepsintegerintervalinteger 1);
    
destructor Destroyoverride;
    
procedure event(sendertobject);
  
end;

procedure MoveIt(itTControlxyIntegerstepsinteger 50intervalinteger 1);
begin
  TIllusion
.Create(itxystepsinterval);
end;

TIllusion }

constructor TIllusion.Create(aitTControlxyastepsintervalinteger);
begin
  it 
:= ait;
  
step := 0;
  
steps := asteps;
  
x0 := it.Left;
  
y0 := it.Top;
  
dx := (x-x0)/steps;
  
dy := (y-y0)/steps;

  
timer := TTimer.Create(nil);
  
timer.Interval := interval;
  
timer.OnTimer := event;
end;

destructor TIllusion.Destroy;
begin
  timer
.Free;
end;

procedure TIllusion.event(sendertobject);
begin
  step 
:= step 1;
  
it.Left := round(x0+dx*step);
  
it.Top := round(y0+dy*step);
  if 
step steps then
    Free
;
end;

procedure TForm1.FormMouseDown(SenderTObjectButtonTMouseButton;
  
ShiftTShiftStateXYInteger);
begin
  MoveIt
(Image1xy);
end
Вложения
Тип файла: 7z mover.7z (5.1 Кбайт, 27 просмотров)
Ответить с цитированием