zoukankan      html  css  js  c++  java
  • DBGridEh列宽自动适应内容的简单方法

    ///////Begin   Source   
      uses   
          Math;   
         
      function   DBGridRecordSize(mColumn:   TColumn):   Boolean;   
      {   返回记录数据网格列显示最大宽度是否成功   }   
      begin   
          Result   :=   False;   
          if   not   Assigned(mColumn.Field)   then   Exit;   
          mColumn.Field.Tag   :=   Max(mColumn.Field.Tag,   
              TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));   
          Result   :=   True;   
      end;   {   DBGridRecordSize   }   
         
      function   DBGridAutoSize(mDBGrid:   TDBGrid;   mOffset:   Integer   =   5):   Boolean;   
      {   返回数据网格自动适应宽度是否成功   }   
      var   
          I:   Integer;   
      begin   
          Result   :=   False;   
          if   not   Assigned(mDBGrid)   then   Exit;   
          if   not   Assigned(mDBGrid.DataSource)   then   Exit;   
          if   not   Assigned(mDBGrid.DataSource.DataSet)   then   Exit;   
          if   not   mDBGrid.DataSource.DataSet.Active   then   Exit;   
          for   I   :=   0   to   mDBGrid.Columns.Count   -   1   do   begin   
              if   not   mDBGrid.Columns[I].Visible   then   Continue;   
              if   Assigned(mDBGrid.Columns[I].Field)   then   
                  mDBGrid.Columns[I].Width   :=   Max(mDBGrid.Columns[I].Field.Tag,   
                      mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption))   +   mOffset   
              else   mDBGrid.Columns[I].Width   :=   
                  mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)   +   mOffset;   
              mDBGrid.Refresh;   
          end;   
          Result   :=   True;   
      end;   {   DBGridAutoSize   }   
      ///////End   Source   
         
      ///////Begin   Demo   
      procedure   TForm1.DBGrid1DrawColumnCell(Sender:   TObject;   const   Rect:   TRect;   
          DataCol:   Integer;   Column:   TColumn;   State:   TGridDrawState);   
      begin   
          DBGridRecordSize(Column);   
      end;   
         
      procedure   TForm1.Button2Click(Sender:   TObject);   
      begin   
          DBGridAutoSize(DBGrid1);   
      end;   
      ///////End   Demo 
     

      procedure TFm_ReadExcel.FormCreate(Sender: TObject);
      begin
        inherited;
        dbgrideh1.RowHeight:=15;
      end;

     
    上述代表需要执行两次OPEN,才能看到效果
  • 相关阅读:
    iOS 6 Tutorials
    iPhone:文本设计的注意事项
    Beginning Storyboards in iOS 5 Part 2
    代友招聘一名网站开发人员
    利用反射自己写的一个ModelHelper类
    SQL中 对逻辑值取反赋值的语句
    记点uml的表现方式
    我的2008年
    Framework 4.0 新关键字dynamic 之我见(一)
    我的采集小程序配置篇
  • 原文地址:https://www.cnblogs.com/yclizq/p/11235896.html
Copyright © 2011-2022 走看看