首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi panel 跑马灯效果 字符串循环从左向右移动解决思路

2013-01-27 
delphi panel 跑马灯效果 字符串循环从左向右移动本帖最后由 maoyunaa 于 2012-08-22 16:26:58 编辑大家好

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;

热点排行