///////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,才能看到效果

最新文章

  1. Javascript数组算法和技巧总结
  2. spring mvc拦截器
  3. Web启动服务器上的某一个服务
  4. OO的设计原则
  5. ueditor .NET版本提示uploader、Config类同时存在于两个dll中
  6. 如何查看Linux操作系统版本
  7. Android开发随笔3
  8. PHPCMS(2)PHPCMS V9 环境搭建(转)
  9. 实现简单的django上传文件
  10. asp.net中使用forms验证
  11. 剑指offer-面试题6.重建二叉树
  12. Delphi中运行时改变panel的位置及大小(通过wm_SysCommand来实现)
  13. Git管理源代码
  14. Bootstrap-datepicker3官方文档中文翻译---Event/事件(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
  15. 利用 Eclipse IDE 的强大功能远程调试 Java 应用程序
  16. 【ATcoder】Xor Sum 2
  17. java实现文件上传下载
  18. python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
  19. 20145317彭垚《网络对抗》Exp6 信息搜集与漏洞扫描
  20. 使用Mininet创建网络拓扑

热门文章

  1. 小程序开发之后台mybatis逆向工程(二)
  2. win7系统扩展双屏幕时,开启两个屏幕下都显示任务栏,第三方插件
  3. Spring——JdbcTemplate
  4. Python3学习笔记(十七):requests模块
  5. BZOJ 2959 长跑 (LCT、并查集)
  6. 修复Long类型太长转为JSON格式的时候出错的问题
  7. 创建DevExtreme应用程序
  8. Node fs 创建多层文件夹
  9. python 生成随机红包
  10. Odp.Net 连接Oracle