我在状态栏里运用了Statusbar1.Panels[2].Text:=TimeToStr(Time);来显示时间,不过它显示出来之后就有能再变化了,我想让它按秒来增加变化的效果,如何实现?

解决方案 »

  1.   

    用一个1秒钟触发的timer
    在ontimer事件中调用Statusbar1.Panels[2].Text:=TimeToStr(Time);
      

  2.   

    放一个timer控件
    把你那句代码现在ontimer事件中不就是了
      

  3.   

    这个问题是个老问题的所以我建议你最好搜索一下老贴!
    别忘了先把这个帖子的分给别人结了!
    大家都是讲道理的吗!要遵纪守法!
    不过这里我可以先提供代码:
    ×××××××××××××××××××××××××××××××××××××
    分辨率的问题
    不同的分辨率下原来的窗口界面可能变得面目全非,对于这种问题,我一般采取以下方式: 
    先取得分辨率方法有如下: 
    procedure TForm1.FormCreate(Sender: TObject); 
    var 
    sx,sy:Integer; 
    begin 
    sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽 
    sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高 
    end; 
    也可以用Screen.width/Screen.Height来取得 
    也可以用Var DevMode:TDeviceMode; 
    Begin 
    EnumDisplaySettings(nil,0,DevMode)  
    sx := DevMode.dmPelsWidth  
    sy := DevMode.dmPelsHeight 来取得 
    end 
    也可以用sx := GetDeviceCaps(GetDC(Form1.Handle), HORZRES) 
    sx :=GetDeviceCaps(GetDC(Form1.Handle), VERTRES) 来取得而后有以下几种方法:
    1. 判断分辨率并选择相应的分辨率方案; 
    (对每种分辨率设计一套控件/字体的大小方案用于在不同分辨率下选择)
    2. 固定窗口大小; 
    procedure TForm1.FormResize(Sender: TObject); 
    begin 
    width:=640; height:=480; 
    left:=0; top:=0; 
    end; 
    3. 使用procedure ScaleBy(M, D: Integer)这个过程来对可视控件进行大小调节(此过程不调节窗口大小,也不变动控件的left和top,对控件的大小按M/D比例来调节),具体如下: 
    procedure TForm1.FormCreate(Sender: TObject); 
    //假设原来的设计环境为800x600 
    var FWidth:integer; 
    begin 
    if(Screen.width<> 800)then 
    begin 
    FWidth:=Width; 
    Scaled:=TRUE; 
    Font.Size:=(Width DIV FWidth)*Font.Size;//字体大小调整 
    ScaleBy(Screen.Width,800); //控件大小调整 
    Height:=longint(Height)*longint(Screen.Height)DIV 600;  
    Width:=longint(Width)*longint(Screen.Width)DIV 800;//窗口大小调整 
    end; 
    end; 
    用此种方法比较实用,而且使用比较简单,基本能适应大多数环境。 4. 调节分辨率到所需的分辨率(即设计时的分辨率,此法对要求封闭的系统比较有用,如工控、触摸屏等等) 
    procedure TForm1.FormCreate(Sender: TObject); 
    var   FWidth:integer; 
    DevMode:TDeviceMode; 
    begin 
    if(Screen.width<> 800)then 
    begin 
          Result:=EnumDisplaySettings(nil,0,DevMode); //取得旧的显示参数 
          if Result then 
          begin 
            DevMode.dmFields:=DM_PELSWIDTH Or DM_PELSHEIGHT; 
             DevMode.dmPelsWidth:=800; 
            DevMode.dmPelsHeight:=600; 
    ChangeDisplaySettings(DevMode,0); //设置新的显示参数 
    end; 
    end; 
    end;
    5. 设置控件的Align和Anchors属性
    ××××××××××××××××××××××××××××××××××××××××
    procedure TMyClass.FormCreate(form: Tform);
    var
      x, y: LongInt;
    begin
    form.scaled := true;  //&Oacute;&ETH;&acute;í
      x := getSystemMetrics(SM_CXSCREEN);
      y := getSystemMetrics(SM_CYSCREEN);
      if (x <> ScreenHeight) or (y <> ScreenWidth) then
        begin
           form.height:=form.height*x DIV ScreenHeight;   //&Oacute;&ETH;&acute;í
           form.width:=form.width*y DIV ScreenWidth;     //&Oacute;&ETH;&acute;í
           form.ScaleBy(x,ScreenHeight);
        end;
    end;
    ××××××××××××××××××××××××××××××××××××××××