请问怎么用processbar显示memo读取文件的进度,文件路径为C:\test.txt

解决方案 »

  1.   

    1.Openfile, 取文件行数->Count
    2.for i:=1 to Count do begin
        Memo.Lines.Add(文件第i行)
        ProcessBar前进1/Count
      end
    3.CloseFile
      

  2.   

    var
      list:tstringlist;
      list:=tstringlist.create;
    list.loadformfile('C:\test.txt');
    for i:=1 to list.strings.count-1do begin
        Memo.Lines.Add(list.strings[i])
        ProcessBar前进1/Count;
      end
    ProcessBar=0;
    list.free;
      

  3.   

    precessBar.Max := list.strings.countfor i:=1 to list.strings.count-1
    do begin
        Memo.Lines.Add(list.strings[i])
        ProcessBar.Position = i
      end
      

  4.   

    需要么?MEMO限制为32K,即使全部读取你会感觉到慢吗?
      

  5.   

    hehe,你们老板也真是的,你直接放一个postion=100的,他也看不出来。太快了,很难看出变化的。
      

  6.   

    dacong(大聪)说的对,只是语言有些问题。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      List:TStringList; i:integer;
    begin
      List:=TStringList.Create;
      List.LoadFromFile('C:\test.txt');
    for i:=0 to List.Count-1 do
      begin
        Memo1.Lines.Add(list[i]);
        ProgressBar1.Position:=ProgressBar1.Position+10;
      end;
      List.Free;
    end;
    已测试通过。
      

  7.   

    请在List.Free语句上面加上以下语句:
      if List.Count<10 then
      ProgressBar1.Position:=100;
    即:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      List:TStringList; i:integer;
    begin
      List:=TStringList.Create;
      List.LoadFromFile('C:\test.txt');
      for i:=0 to List.Count-1 do
      begin
        Memo1.Lines.Add(list[i]);
        ProgressBar1.Position:=ProgressBar1.Position+10;
      end;
      if List.Count<10 then
      ProgressBar1.Position:=100;
      List.Free;
    end;
      

  8.   

    请在List.Free语句上面加上以下语句:
      if List.Count<10 then
      ProgressBar1.Position:=100;
    即:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      List:TStringList; i:integer;
    begin
      List:=TStringList.Create;
      List.LoadFromFile('C:\test.txt');
      for i:=0 to List.Count-1 do
      begin
        Memo1.Lines.Add(list[i]);
        ProgressBar1.Position:=ProgressBar1.Position+10;
      end;
      if List.Count<10 then
      ProgressBar1.Position:=100;
      List.Free;
    end;
    ------通过 on d6+xp
      

  9.   

    for i:=0 to List.Count-1 do
      begin
        Memo1.Lines.Add(list[i]);
    //建议在这里添加   Sleep(100~~10000),这样才更有效果。
        ProgressBar1.Position:=ProgressBar1.Position+10;
      end;
      

  10.   

    在form中添加ProgressBar1,Memo1,Button1
    以下代码是调试成功的:procedure TForm1.Button1Click(Sender: TObject);
    var
      list:tstringlist;
      i:integer;
    begin
      list:=tstringlist.create;
      list.LoadFromFile('C:\test.txt');
      ProgressBar1.min:=0;
      ProgressBar1.Max := list.count ;
      for i:=0 to list.count-1do
      begin
        Memo1.Lines.Add(list.strings[i]);
        ProgressBar1.Position:= i;
      end ;
      list.free;
    end;