zoukankan      html  css  js  c++  java
  • Delphi 自带的DBGrid根据标题和内容自适应列宽(转)完整代码

    (*// 
    标题:数据网格自动适应宽度 
    说明:使用DBGrid不可不看 
    设计:Zswang 
    日期:2002-03-04 
    支持:wjhu111@21cn.com 
    //*) 

    ///////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 

  • 相关阅读:
    XMPP协议之消息回执解决方案
    使用js在网页上记录鼠标划圈的小程序
    数据库SQL,NoSQL之小感悟
    MongoDB安装与使用体验
    缓存遇到的数据过滤与分页问题
    Tomcat shutdown执行后无法退出进程问题排查及解决
    Apache Ignite之集群应用测试
    Ignite性能测试以及对redis的对比
    学习AOP之深入一点Spring Aop
    学习AOP之认识一下Spring AOP
  • 原文地址:https://www.cnblogs.com/mianli/p/12456066.html
Copyright © 2011-2022 走看看