如何使StatusBar中的文字移动?比如从左移到右,如此循环 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 办法很多,可以自己画,按照像素来移动,不过这麻烦些,简单的就是修改字符串,给你个例子弄一个 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; 用此测试'#面对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; 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. 哈哈!半水出来了。用widestring 如果遇到西文会蹦一个西文宽度,遇到中文就是两个西文宽度,估计好办法只能是自己画 :) dof文件里面,能否使用预编译指令? 一个关于BusinessSkinForm控件的简单问题 怎么屏蔽Ctrl+V? 开个帖子,回家的人火车票都买好了吗? COM+中间层多了三行代码,系统就报错“分步式事务已完成,请将此会话登记到新事务或NULL事务中” 如何获取Office 的SP补丁信息 DELPHI7??? 如何在DELPHI中得到一个汉字的内码? 急急急!在窗体A中如何获取窗体B中的光标所在的TEdit的句柄? 立体声. 高手请进!!!!! 想学ADO,请问哪里可以下到李维的<<DELPHI 5.X ADO/MTS/COM+高级程序设计》这本书?
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;
var vScrollStr: WideString = '面对SARS我们可以更坚强 ';procedure TFormUpgrade.Timer1Timer(Sender: TObject);
begin
StatusBar1.SimpleText := vScrollStr;
vScrollStr:= Copy(vScrollStr, 2, MaxInt) + Copy(vScrollStr, 1, 1);
end;
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.