begin
unit Unit1;
interface
uses
 Windows,messages.SysUtils.Variants,Classes.Graphics,Vontrols,Formas,
 Dialogs,ExtCtrls,StdCtrls;
 type
   TForm1=class (TForm)
   Shape1:tsHAPE;
   Button1:TButton;
   Button2:TButton;
   Timer1:TTimer:
   procedure Button1Click (Sender:TObject);
   procedure Button2Click (Sender:TObjcet);
   procedure Timer1Timer (Sender:TObject);
 private
   {Private declarations}
 public
 {Public declarations}
 end;
 var
 Form1:TForm1;
 implementation
 {$R*.dfm} procedure TForm1.Button1Click (sender:TObject);
 //小球开始运动
 begin
             Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer (Sender:TObject);
//小球停止运动
begin
    Timer1.Enabled:=false;
end;
procedure TForm1.Timer1Timer (Sender:TObject);
//实现小球运动
下面的就不能运行了,提示错误。上面的可以正常运行,各位帮我一下啊
begin
    if  Shape1.left>255 then
        Shape1.left:=0
     else
     begin
          Shape1.Left:=Shape1.left+10;
          Shape1.Width:=(Shape1.Width+1) mod 80;
          Shape1.Height:=(Shape1.Height+1) mod 80;
end;
end.

解决方案 »

  1.   

    呵呵,很长时间没有看过Delphi了,
    但是看了兄台的程序怎么有两个
         procedure TForm1.Timer1Timer (Sender:TObject);
    的噢。为什么把
        Timer1.Enabled:=false;
    放到
        procedure TForm1.Timer1Timer (Sender:TObject);
    呀,这样不就是一开始就不能再执行你那段控制小球运动运动的代码了?我想应该把程序改为如下形式就可以了吧(只是想法,没有测试过的):
    procedure TForm1.Button1Click (sender:TObject);
     //小球开始运动
     begin
                 Timer1.Enabled:=true;
    end;procedure TForm1.Button2Timer (Sender:TObject);
    //小球停止运动
    begin
        Timer1.Enabled:=false;
    end;procedure TForm1.Timer1Timer (Sender:TObject);
    //小球运动的代码
    begin
        if  Shape1.left>255 then
            Shape1.left:=0
        else
         begin
              Shape1.Left:=Shape1.left+10;
              Shape1.Width:=(Shape1.Width+1) mod 80;
              Shape1.Height:=(Shape1.Height+1) mod 80;
         end;
    end.试试看?应该可以的。