比如我用一个for循环,给单元格中的值赋值
for n:=0 to IrrAreaSum-1 do
  begin
    cxGrid1TableView1.DataController.Values[n, 0]:=n+1;
    cxGrid1TableView1.DataController.Values[n, 1]:=n+1;  
     cxGrid1TableView1.DataController.Values[n, 2]:=n+1;
     cxGrid1TableView1.DataController.Values[n, 3]:=N+1;    end;
当IrrAreaSum值100的话,时间会很长。。请问有其他的写法,能提高赋值的效率么??操作还没有涉及到数据库操作,仅仅显示界面的单元格赋值。。求大神们帮忙。。谢谢delphi,cxgrid

解决方案 »

  1.   

    貌似不连数据库只能一个个的赋值吧。学习中ing
      

  2.   

    效率其实是蛮快的,是你没注意到界面刷新问题,请使用
      cxGrid1TableView1.BeginUpdate;
      ...
      cxGrid1TableView1.EndUpdate;  cxGrid1TableView1.DataController.BeginUpdate;
      ...
      cxGrid1TableView1.DataController.EndUpdate;
    就会达到你想要的效果了。
      

  3.   

    唉,~~,码上:
      cxGrid1TableView1.BeginUpdate;
      for n := 0 to IrrAreaSum - 1 do
      begin
        cxGrid1TableView1.DataController.Values[n, 0] := n + 1;
        cxGrid1TableView1.DataController.Values[n, 1] := n + 1;
        cxGrid1TableView1.DataController.Values[n, 2] := n + 1;
        cxGrid1TableView1.DataController.Values[n, 3] := N + 1;
      end;
      cxGrid1TableView1.EndUpdate;