[求救]delphi怎样设置dbgrid 单元格按百分比计算宽度

doc_rao 2012-03-20 05:09:41
我想在delphi中把dbgrid网格的列宽按百分比分配单元格宽度,这样把做好的表格最大化时,网格也跟着按比例全屏显示,请问这个功能可以实现没??
...全文
207 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
doc_rao 2012-03-23
  • 打赏
  • 举报
回复
这是自定义函数,请问怎样使用呢??低级问题!不要笑我啊!
xyh08180 2012-03-22
  • 打赏
  • 举报
回复
可以的:

function DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 10): Boolean;

function DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 10): 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 }

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧