unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Button1: TButton;
TrackBar1: TTrackBar;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TrackBar1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Bit:TBitmap;
i,gox,hh:Integer;
strlist: string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bit := TBitmap.Create;
Bit.Height := 30;
gox:=form1.clientwidth;
strlist:='第一第二第三第四第五第六第七第八第九第十';
strlist:=strlist+strlist;
strlist:=strlist+strlist;
strlist:=strlist+strlist;
strlist:=strlist+strlist;
strlist:=strlist+strlist;
strlist:=strlist+strlist;
strlist:=strlist+strlist;
hh :=Canvas.Textwidth(strlist);
Bit.Width:=hh;
label1.Caption:=inttostr(hh);
setbkmode(bit.canvas.handle,transparent);
bit.Canvas.TextOut(1,1,strlist);
TrackBar1.Max:=500;
TrackBar1.Min:=10;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
gox:=gox-1;
Canvas.Draw(gox,0,Bit);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
bit.Free;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Timer1.Interval:=TrackBar1.Position;
label2.caption:=inttostr(TrackBar1.Position);
end;
end.
经过这番改进之后,资源降到8%,而且很流畅。但是刚开始运行的时候还是很慢。