控件:TIdTCPServer,IdTCPclient
客户端向服务器发送一个字符串,服务器处理这个字符串,需要要不定的时间,然后发返回客户端一个数字。
由于一般处理时间叫长,约几分钟,所以客户端要做一个进度条,从发送字符串开始,到收到返回值结束。
这样的话能不能在可户端那里做一个进度条?这个进度条该怎么做?
发送程序:
procedure TForm1.Button3Click(Sender: TObject);
var
fankui:string;
begin
with IdTCPClient1 do
  begin
      writeln('num:'+edit3.Text+'text:'+memo1.Text+'user:'+'admin');
      //发送字符串,长度不定。
      log.Items.Add(readln());
      fankui:=readln();//接收反馈信息
      showmessage(fankui);//显示反馈信息
      end;
end; 
因为我没做过进度条,请大虾帮忙写一下,谢谢

解决方案 »

  1.   

    进度条表面上看一般是根据时间来走的,回归到程序中其实我们是根据代码执行进度来控制进度条的走动的,根据你上面的情况可以这样来控制进度条
    writeln('num:'+edit3.Text+'text:'+memo1.Text+'user:'+'admin');//进度条走15%
     //发送字符串,长度不定。
    log.Items.Add(readln());//进度条走15%
    fankui:=readln();//接收反馈信息,进度条走40%
    showmessage(fankui);//显示反馈信息,进度条到达最满
      

  2.   

    你的服务器端是如何进行处理,用循环的话可以在循环中加入一向客户端发送处理进程的字符串,如果不是,只是你的自定义处理太耗时间,你可以学M¥的WINDOWS启动,开一个进度条,只是在不停地动,这个是用TIMER就可以!试试!
      

  3.   

    <<客户端向服务器发送一个字符串,服务器处理这个字符串,需要要不定的时间,然后发返回客户端一个数字。如果连服务器端都不知道确切的时间的话,进度条无法使用,建议楼主使用查找对话框得了,就是一个放大镜在转的那个动画
      

  4.   

    其实我是想这样,服务器端处理的时候,客户端不能进行任何操作,所以想加进度条这么个东西,lihao_ningxia(耗子) 的想法确实不错,可我不会timer,哪位给点代码啊
      

  5.   

    fim(镇江DJ)(DJ=DelphiJava):你说的那个东西怎么做?
      

  6.   

    在SYSTEM控件包中有个TIMER控件,然后拉进来,双击就可以了,那样你只要让TIMER1的ENABLE为TRUE就可以了,比如在这里用个循环
    for i:=0 to 100 do
    begin
      processbar1.position:=i;
      sleep(20);
    end;
    我只是写一些大概的代码,然后呢,让TIMER的时间间隔为3秒或多少,试试吧
      

  7.   

    to 楼主:Win32选项卡下有一个Animate组件,它有一个CommonAVI方法
    还有一个Active属性举个例子://server do something
    Animate1.Active := True
    ...
    ...
    ...
    // if server done then
    Animate1.Active := False;
      

  8.   

    <<它有一个CommonAVI方法写错了,是属性,呵呵
      

  9.   

    谁能给个详细点的,进度条和timer控件的用法啊