请问如何给下面赋值速度才是最快???
dbedit1.DataSource:=form1.historytableDataSource;
dbedit2.DataSource:=form1.historytableDataSource;
dbedit3.DataSource:=form1.historytableDataSource;
dbedit4.DataSource:=form1.historytableDataSource;
dbedit5.DataSource:=form1.historytableDataSource;
dbedit6.DataSource:=form1.historytableDataSource;
dbedit7.DataSource:=form1.historytableDataSource;
dbedit8.DataSource:=form1.historytableDataSource;
dbedit9.DataSource:=form1.historytableDataSource;
dbedit10.DataSource:=form1.historytableDataSource;
dbedit11.DataSource:=form1.historytableDataSource;
dbedit12.DataSource:=form1.historytableDataSource;
dbedit13.DataSource:=form1.historytableDataSource;
dbedit14.DataSource:=form1.historytableDataSource;
dbedit15.DataSource:=form1.historytableDataSource;
dbedit16.DataSource:=form1.historytableDataSource;
dbedit17.DataSource:=form1.historytableDataSource;
dbedit18.DataSource:=form1.historytableDataSource;
dbedit19.DataSource:=form1.historytableDataSource;
dbedit20.DataSource:=form1.historytableDataSource;
dbmemo1.DataSource:=form1.historytableDataSource;

解决方案 »

  1.   

    你这样赋值已经很快了。
    当然如果加上这句话,可能会更快。
    form1.historytableDataSource.DataSet.DisableControls;
    try
    dbedit1.DataSource:=form1.historytableDataSource;
    dbedit2.DataSource:=form1.historytableDataSource;
    dbedit3.DataSource:=form1.historytableDataSource;
    dbedit4.DataSource:=form1.historytableDataSource;
    dbedit5.DataSource:=form1.historytableDataSource;
    dbedit6.DataSource:=form1.historytableDataSource;
    dbedit7.DataSource:=form1.historytableDataSource;
    dbedit8.DataSource:=form1.historytableDataSource;
    dbedit9.DataSource:=form1.historytableDataSource;
    dbedit10.DataSource:=form1.historytableDataSource;
    dbedit11.DataSource:=form1.historytableDataSource;
    dbedit12.DataSource:=form1.historytableDataSource;
    dbedit13.DataSource:=form1.historytableDataSource;
    dbedit14.DataSource:=form1.historytableDataSource;
    dbedit15.DataSource:=form1.historytableDataSource;
    dbedit16.DataSource:=form1.historytableDataSource;
    dbedit17.DataSource:=form1.historytableDataSource;
    dbedit18.DataSource:=form1.historytableDataSource;
    dbedit19.DataSource:=form1.historytableDataSource;
    dbedit20.DataSource:=form1.historytableDataSource;
    dbmemo1.DataSource:=form1.historytableDataSource;
    finally
    form1.historytableDataSource.DataSet.EnableControls;
    end;
      

  2.   

    with form1 do
    begin
      dbedit1.DataSource:=historytableDataSource;
      dbedit2.DataSource:=historytableDataSource;
      dbedit3.DataSource:=historytableDataSource;
      dbedit4.DataSource:=historytableDataSource;
      dbedit5.DataSource:=historytableDataSource;
      dbedit6.DataSource:=historytableDataSource;
      dbedit7.DataSource:=historytableDataSource;
      dbedit8.DataSource:=historytableDataSource;
      dbedit9.DataSource:=historytableDataSource;
      dbedit10.DataSource:=historytableDataSource;
      dbedit11.DataSource:=historytableDataSource;
      dbedit12.DataSource:=historytableDataSource;
      dbedit13.DataSource:=historytableDataSource;
      dbedit14.DataSource:=historytableDataSource;
      dbedit15.DataSource:=historytableDataSource;
      dbedit16.DataSource:=historytableDataSource;
      dbedit17.DataSource:=historytableDataSource;
      dbedit18.DataSource:=historytableDataSource;
      dbedit19.DataSource:=historytableDataSource;
      dbedit20.DataSource:=historytableDataSource;
      dbmemo1.DataSource:=historytableDataSource;
    end
      

  3.   

    这样写,累死你!直接DataSource属性不行?--------------------------------------
    靠,还不结帖!
      

  4.   

    var
      i:integer
    begin
      for i:=0 to ComponentCount-1 do
      begin
        if Components[i] is TDBEdit then
        begin
          TDBEdit(Components[i]).DataSource:=historytableDataSource;
        end;
        if Components[i] is TDBMemo then
        begin
          TDBMemo(Components[i]).DataSource:=historytableDataSource;
        end;
      end;end;
      

  5.   

    TO: xybh97102(冰点)
    如果一个窗体有许多的组件这样相对会不会反而慢????
      

  6.   

    xybh97102(冰点)的代码很好的,简洁、易维护。
      

  7.   

    try
      form1.historytableDataSource.DataSet.DisableControls;
      with Form1 do
      begin
      for i := 1 to 20 do 
         TDBEdit(FindComponent('DBEdit'+IntToStr(i))).DataSource:=historytableDataSource;
      dbmemo1.DataSource:=historytableDataSource;
      end;
    finally
      form1.historytableDataSource.DataSet.EnableControls;
    end;
      

  8.   

    用控件数组.
    for i:=1 TO 20 do
    if Sender is TDbedit then Tdbedit(Controls[i]).DataSource:=historytableDataSource
      else if Sender is Tdbmemo then TEdit(Controls[i]).DataSource:=historytableDataSource;
      

  9.   

    同意  xybh97102(冰点)  的做法,我也经常这样子做。
      

  10.   


    回复人: jacket008(夜猫) ( ) 信誉:100  2003-7-26 16:12:55  得分:0 
    TO: xybh97102(冰点)
    如果一个窗体有许多的组件这样相对会不会反而慢????**********************************呵呵,我觉得不管组件是多是少,楼主的方法都应该快一点点...
    这就是速度和可维护性哪个更重要的问题了...个人认为冰点和良子的主意加一起蛮好...应该感觉不到慢才对 
     
      

  11.   

    ljmanage(过客) try
      form1.historytableDataSource.DataSet.DisableControls;
      with Form1 do
      begin
      for i := 1 to 20 do 
         TDBEdit(FindComponent('DBEdit'+IntToStr(i))).DataSource:=historytableDataSource;
      dbmemo1.DataSource:=historytableDataSource;
      end;
    finally
      form1.historytableDataSource.DataSet.EnableControls;
    end;我想这个会不会好的?