procedure TForm1.Timer1Timer(Sender: TObject);
begin
    image1.Visible :=true;
   // image1.Width:=10;
    image1.Width:=image1.Width +50;
    if image1.Width>500 then
    begin
      image1.Width  :=0;
      image1.Visible :=false;
      Label1.Caption :='Hello';
      label1.Refresh ;
      sleepEX(5000,true);
    end;
end;
为什么image1.visible:=false;
不能正确执行呢
我的意思是一个 image控件首先自动增加宽度,然后当宽度达到一定时那么这个时候image控件就不可见,此时 label控件显示需要的内容,并且label控件的内容持续显示5″,但是结果确实image达到一定宽度持续显示5″同样的代码在VB中却能正确的执行!!!!
看来delphi真的好差劲啊!!!

解决方案 »

  1.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
        image1.Visible :=true;
       // image1.Width:=10;
        image1.Width:=image1.Width +50;
        if image1.Width>500 then
        begin
          image1.Width  :=0;
          image1.Visible :=false;
          self.Update;
          Label1.Caption :='Hello';
          label1.Refresh ;
          sleepEX(5000,true);
        end;
    end;
    不要自己不会就说Delphi好差劲啊!!!
      

  2.   

    To  belllab(bell
    能不能解释一下为什么要加self.update?
    我以前用VC,VB的,delphi还没有看过书,看过了几个程序的代码
    现在想不用VB,该用delphi,但是为什么两者的差别这么大呢?
      

  3.   

    To  mc43(火猴)
    你是个超级笨猪,你不是猪你怎么不解释呢,你别一只半解打肿脸装猪了!!!
    臭猪!
      

  4.   

    因为你用的是timer事件,image1.Visible :=true;image1的visible属性始终为真,也就始终可以看见,所以不行
      

  5.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
        image1.Visible :=true;//这一句你在Timer1为真的时候你永远都执行啊!错误就在这一句了!永远都为真啊!笨啊!你有思维吗??????
       // image1.Width:=10;
        image1.Width:=image1.Width +50;
        if image1.Width>500 then
        begin
          image1.Width  :=0;
          image1.Visible :=false;
          Label1.Caption :='Hello';
          label1.Refresh ;
          sleepEX(5000,true);
        end;
    end;