请问:如何保存dbgrid的列宽,或者自动适应列宽?我用了dbgridEH,Rzdbgrid,但是还是实现不了!

解决方案 »

  1.   

    http://www.xker.com/article/articleview/2004-12-16/article_view_249.htmDelphi中实现DBGrid列宽度自动调整使DBGrid的列自动调整到何时大小
    http://www.7880.com/info/Article-38ac0e80.htmlprocedure MakeDBGridColumnsAutoFixItsWidth(objDBGrid:TDBGrid);
    var
      cc:integer;
      i,tmpLength:integer;
      objDataSet:TDataSet;
      aDgCLength:array of integer;
    begin
      cc:=objDbGrid.Columns.Count-1;
      objDataSet:=objDbGrid.DataSource.DataSet;
      setlength(aDgCLength,cc+1);
      file://取标题字段的长度
      for i:=0 to  cc do
      begin
        aDgCLength[i]:= length(objDbGrid.Columns[i].Title.Caption);
      end;  objDataSet.First;
      while not objDataSet.Eof do
      begin
        file://取列中每个字段的长度
        for i:=0 to  cc do
        begin
          tmpLength:=length(objDataSet.Fields.Fields[i].AsString);
          if tmpLength>aDgCLength[i]
          then aDgCLength[i]:=tmpLength;
        end;
        objDataSet.Next;
      end;
      for i:=0 to  cc do
      begin
        objDbGrid.Columns[i].Width:=aDgCLength[i]*7;
      end;
    end;