如题

解决方案 »

  1.   

    办法很多,可以自己画,按照像素来移动,不过这麻烦些,简单的就是修改字符串,给你个例子弄一个 TTimer,TStatusBartype
      TForm1 = class(TForm)
        ListView1: TListView;
        StatusBar1: TStatusBar;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        sScrollStr: string;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      StatusBar1.Panels[0].Text:= sScrollStr;
      sScrollStr:= Copy(sScrollStr, 3, Length(sScrollStr)-2) + Copy(sScrollStr, 1, 2);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      sScrollStr:= '面对SARS我们可以更坚强    ';
    end;
      

  2.   

    用此测试'#面对SARS我们可以更坚强    '//可以用WideSting类型来处理
    var vScrollStr: WideString = '面对SARS我们可以更坚强  ';procedure TFormUpgrade.Timer1Timer(Sender: TObject);
    begin
      StatusBar1.SimpleText := vScrollStr;
      vScrollStr:= Copy(vScrollStr, 2, MaxInt) + Copy(vScrollStr, 1, 1);
    end;
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        StatusBar1: TStatusBar;
        Timer1: TTimer;
        procedure FormPaint(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      Label1:Tlabel;
      Direction:Integer;implementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);
    begin
      if label1<>nil then exit;
      label1:=TLabel.Create(self);
      Label1.Parent:=Statusbar1;
      label1.Caption:='haha';
      Label1.Left:=0;
      Label1.Top:=0;
      Label1.Width:=20;
      label1.Height:=Statusbar1.Height;
      Label1.Transparent:=True;
      Direction:=0;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      if label1.Left=0  then
        Direction :=0;
      if Label1.Left+label1.Width=Statusbar1.Width  then
        Direction :=1;  if Direction=0 then
         Label1.Left:=Label1.Left+1
      else
         Label1.Left:=Label1.Left-1;;
    end;end.
      

  4.   

    哈哈!半水出来了。用widestring 如果遇到西文会蹦一个西文宽度,遇到中文就是两个西文宽度,估计好办法只能是自己画  :)