关于delphi中Ttimer的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 07:41:52
var
Form2: TForm2;
len:integer;
i:integer=0;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
progressbar1.Position:=0;
richedit2.Lines.Clear;
timer1.Enabled:=true;
label1.Caption:='正在拷贝数据,请稍等...' ;
label1.Visible:=true;
i:=0

end;

procedure TForm2.FormCreate(Sender: TObject);
begin
richedit1.Lines.LoadFromFile('E:\编程\据说是世界编程大赛第一名写的程序.txt');
len:=length(richedit1.Text);
end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
part_len:integer;
begin
part_len:=len div 100;
richedit2.Text:=copy(richedit1.Text,i,part_len);
i:=i+part_len;
progressbar1.Position:=progressbar1.Position+1;
if i>len then
begin
timer1.Enabled:=false;
label1.Caption:='数据拷贝完毕';
end;
end;

1: Timer 有个这个属性,Interval , 是毫秒数,这个程序估计设计的是等于1000的,就是当 timer1.Enabled:=true; 的时候,每隔1秒就会调用Timer1Timer函数 2: 这个程序设计的思路是把一个文件读入,然后分100份,copy到 richedit2中,在copy过程中做了一个进度条. 每隔一段时间(Timer 的Interval 值)就复制一点,同时进度条前进一步, , part_len 是 总长度len的1/100, i 初始为0 ,每次加上 part_len,也就是说大概 Timer1Timer执行100次的时候, 满足 if i>len then 条件, Timer控件停止.