哪位大神用中文幫小弟我翻譯一下這段代碼

哪位大神用中文幫我翻譯一下這段代碼
圖片隨機移動的代碼,本人菜鳥,很多無法看懂,望有高手幫我解析一下,謝謝


procedure TForm1.Timer1Timer(Sender: TObject);

begin
    randomize;
    if random(10)=0 then
    timer1.Tag :=random(4);
    case  timer1.Tag of
    0: begin
    if image1.Left >0 then  image1.Left:=image1.Left-10
       else
         timer1.Tag:=1
         end;
    1: begin
     if image1.Left+image1.Width <form1.Width  then
       image1.Left:=image1.Left+10
       else
         timer1.Tag:=0
         end;
    2: begin
     if image1.Top >0  then
       image1.Top :=image1.Top-10
       else
         timer1.Tag :=3
         end;
    3: begin
     if image1.Top+image1.Height <form1.Height    then
       image1.Top :=image1.Top+10
       else
         timer1.Tag :=2
         end;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
     image1.Left :=x;
     image1.Top :=y;
end;

procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
      if (image1.Left =x)and(image1.Top =y ) then
      timer1.Enabled :=false
      //else timer1.Enabled :=true
end;



procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
        timer1.Enabled :=false
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    //  timer1.Enabled :=false;
end;

procedure TForm1.cmmouseleave(var Message: TMessage);
begin
    timer1.Enabled :=true
end;
------解决思路----------------------
图片移动,感觉像动画一样,就这个
------解决思路----------------------
类似屏幕保护的功能,img1在主窗体上随机移动。
------解决思路----------------------
通过随机数,让图像在窗体随机漂动。
------解决思路----------------------
// Timer1事件
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  randomize;                 // 设置随机种子
  if random(10)=0 then       // 随机数 0-9  当随机数=0时 (1/10的机率)
    timer1.Tag :=random(4);  // Tag 是供用户自由使用的integer变量
                             // 这里随机取0-3值

  case  timer1.Tag of
    0: begin
         if image1.Left >0
           then image1.Left:=image1.Left-10  // 图像左移10像素
           else timer1.Tag:=1                // 图像不动 Tag=1
       end;
    1: begin
         if image1.Left+image1.Width <form1.Width
           then image1.Left:=image1.Left+10  // 图像右移10像素
           else timer1.Tag:=0
       end;
    2: begin
         if image1.Top >0
           then image1.Top :=image1.Top-10   // 图像上移10像素
           else timer1.Tag :=3
         end;
    3: begin
         if image1.Top+image1.Height <form1.Height
           then image1.Top :=image1.Top+10   // 图像下移10像素
           else timer1.Tag :=2
       end;
  end;
end;

// 将对象拖过控件的边界时发生
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  image1.Left :=x;
  image1.Top :=y;
end;

// 将对象拖过控件的边界时发生
procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if (image1.Left=x) and (image1.Top=y) then
    timer1.Enabled :=false;
end;

// 鼠标指针移到控件上时发生
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  timer1.Enabled :=false         // 鼠标移到图像上时停止timer1(移动)
end;

// 原方法 procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE;
// wm_mouseleave是windows的消息
// 它是获得Delphi的内部消息,鼠标离开时发生
procedure TForm1.cmmouseleave(var Message: TMessage);
begin
  timer1.Enabled :=true           // 鼠标离开时启动timer1(移动 )
end;

说清楚了吗?