delphi panel 跑马灯效果 字符串循环从左向右移动
本帖最后由 maoyunaa 于 2012-08-22 16:26:58 编辑 大家好!
求delphi 代码。
如delphi 的panel 的caption 属性设为"跑马灯效果"。能不能达到这样的效果。字符串:“跑马灯效果”可以自左向右移动。当字符串到达右边时,字符串又可以从左边开始移动。像某些网站的跑马灯效果!
谢谢!
[解决办法]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
flag:string;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if label1.Left=0 then
begin
flag:='1'; //向右移动
end;
if label1.Left=340 then
begin
label1.Left:=0;// 将label1位置赋值到最左边
flag:='1'; //向右移动
end;
if flag='1' then
begin
label1.Left:=label1.Left+10;
end;
//if flag='2' then
//begin
//label1.Left:=label1.Left-10;
//end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Left:=0;
end;
end.
这个就是你要效果。别忘记加个timer控件
效果是:先从左边到右边,到达最右边之后,会自动跳转到最左边,然后重新去右边
[解决办法]
调整好panel的宽度
加个Timer 其ontimer事件中
if panel1.left+panel1.Width>form1.Width then
panel1.Left:=0
else
panel1.Left:=panel1.Left+10;