请问闪动代码是什么? ( 积分: 20 )

  • 主题发起人 主题发起人 littlehp
  • 开始时间 开始时间
L

littlehp

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手大侠,我是第一次来 希望我的问题能有高手的指点
我在statusBarPanel3 里面的text属性输入的是“欢迎光临”这几个字,如何让这些字体闪烁,并且可以从右飘到左,而且可以循环呢?
[:)]
 
各位高手大侠,我是第一次来 希望我的问题能有高手的指点
我在statusBarPanel3 里面的text属性输入的是“欢迎光临”这几个字,如何让这些字体闪烁,并且可以从右飘到左,而且可以循环呢?
[:)]
 
用一个Timer控件,定时让文字变成 "" 和 "欢迎光临",并在文字前面加上空格使它漂移。
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel;
const Rect: TRect);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
f,w:integer;
//記錄文字加入的起始點和文字的寬度
tmp_rect:trect;
//記錄文字顯示區域
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel;
const Rect: TRect);
begin
//記錄要顯示文字的區域值
tmp_rect.Left:=rect.Left;
tmp_rect.Top:=rect.Top;
tmp_rect.Right:=rect.Right;
tmp_rect.Bottom:=rect.Bottom;
f:=tmp_rect.Right;
//得到文字顯示起始點
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
with statusbar1.canvasdo
begin
//顯示文字?
fillrect(tmp_rect);
font.Color:=clblack;
w:=textwidth('欢迎光临!');
pen.Style:=psclear;
rectangle(tmp_rect.Left,tmp_rect.Top,tmp_rect.Right,tmp_rect.Bottom);
textout(f,tmp_rect.Top,'欢迎光临!');
end;
//計算文字顯示起始點
if f>-w then
f:=f-30
else
f:=tmp_rect.Right;
end;

end.
 
楼上两位说的都有道理,这个功能实现起来也简单,但是建议楼主不要这样做.因为这样会影响机器刷新的速度,还不如放个好看图片来的实在.呵呵..
 
后退
顶部