我要问的问题有两个:
1、怎么让屏幕看起来不象死机
2、怎么能尽快的插入?

解决方案 »

  1.   

    我在大富翁上的一篇笔记,希望能对你有所帮助。http://www.delphibbs.com/keylife/iblog_show.asp?xid=1022
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str : string;
      F   : TextFile;
    begin
      with ListView1 do
      begin
        Items.BeginUpdate;     //添加完毕后再刷新列表框
        Items.Clear;
        while not Eof(F) do
        begin
          ReadLn(F,Str);
          with Items.Add do
          begin
            Caption := Str;
            AutoSize := True;
            SubItems.Add('.....');
            //......
            //.....
          end;
          Application.ProcessMessages; //处理消息,看起来就不会像死机了
        end;
        Items.EndUpdate;
      end;
      

  3.   

    回复人: theone_jxm() ( ) 信誉:100 你插入10000条试试看!
      

  4.   


      是因为IO的问题导至的。
       先把listview隐藏了,插入完后再显示出来,这样子明显会快很多。
      

  5.   

    呵呵,毕竟你添加一个就要重画一次。所以多了自然会受到显示的瓶颈,速度当然慢下来了。解决方法可以在添加之前调用BeginUpdate,调用完毕之后再用EndUpdate。或者调用之前Visible:=false,调用之后Visible:=True。不过推荐前者
      

  6.   

    强烈统一 Eastunfail(恶鱼杀手)
    我好像是用
    lv.items.add;
    ....
    lv.update;原理是一样的
    对于listbox有相同问题,同样方法解决
      

  7.   

    还有一个方法,就是不用控件刷新,自己来刷新,DELPHI自带个例子在DEMO中,你可以看一下
      

  8.   

    Application.ProcessMessages 会解决假死,但会有一小下延时,10000条都加在一起也不短!
    那种强制刷新还不如Application.ProcessMessages那!
    还是用多线程好速度快还没延时!
      

  9.   

    嘿嘿,这个啊。我知道的。两点,一个就是你的线程控制有问题。加线程。二个就是你需要用virtual技术,在delphi自带的帮助,还有demo里有详细的解释。插入999999个数据也就两秒钟吧。嘿嘿。
      

  10.   

    使用wm_paint方法,将及时刷新设置为否。待数据处理后,设置及时
      

  11.   

    http://expert.csdn.net/Expert/topic/2350/2350526.xml?temp=.7621576 原理一样:)
      

  12.   

    用WinAPI下的线程,而且每插入几个项(如10个)就Sleep一下,显示一下进度。我就是这么做的,效果还可以。
      

  13.   

    用线程了,在你的调用部分SLEEP(10);加上它,我们在CB下就是这么用的一边打开一边还可以做别的数据是在一直长的但看不出来任何影响!
      

  14.   

    reallike说的对!需要ownerdate设定为true然后自己处理Item!
      

  15.   

    用线程,速度上不会有明显改变但至少界面看起来不会和死机一样也课考虑只加载一部分,待到显示时再加载,winamp就是这样做的
      

  16.   

    你可以插入10条左右数据的时候刷新以下,这样就会看到数据在不断的显示也就不会看上去死机一样了,但是这样的话插入listview的时间会增长