滚动文字显示闪烁如何消除?

qdsd 2004-10-25 05:57:16
使用Delphi实现文字滚动显示效果,主要是用Timer控制Label的位置实现,但是文字显示有闪烁,请高手指点如何消除闪烁!
...全文
292 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hottey 2004-10-25
  • 打赏
  • 举报
回复
哈哈,偶楼上的说的是:)
Frank.WU 2004-10-25
  • 打赏
  • 举报
回复
指定label的parent的双缓冲;
miky 2004-10-25
  • 打赏
  • 举报
回复
在Form上放个button,再放个Timer,添加下面代码:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ABmp: TBitmap;
Y:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ABmp := TBitmap.Create;
ABmp.Width := 200;
ABmp.Height := 20;
ABmp.Canvas.Brush.Color := Self.Color;
ABmp.Canvas.FillRect(Rect(0,0,300,20));
ABmp.Canvas.TextOut(1,1,'只要不是286,我是不会闪的!');
Timer1.Interval := 1;
Timer1.Enabled := True;
Y := 200;
Button1.Enabled := False;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ABmp.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Y < 10 then
Y := 200
else
Y := Y - 1;
BitBlt(Canvas.Handle,10,y,160,20,ABmp.Canvas.Handle,0,0,SRCCOPY);
end;

end.
qdsd 2004-10-25
  • 打赏
  • 举报
回复
不行!
zdq801104 2004-10-25
  • 打赏
  • 举报
回复
application.progrsee试试

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧