gpt4 book ai didi

delphi - 如何在Delphi中使用滚动条找到网格组件的实际宽度

转载 作者:行者123 更新时间:2023-12-03 18:39:39 27 4
gpt4 key购买 nike

我有一个网格组件(DBGrid),上面有很多列。由于列数较多,因此创建了滚动条,因此网格的某些部分仍然隐藏。我需要找出DBGrid的实际宽度是多少,包括由于滚动条而未显示的部分。但是 Width 属性只给出了组件本身的宽度。有人有什么想法吗?

最佳答案

也许这可能会有所帮助。它是 TDBGrid 的类助手的一部分,它自动调整最后一列的大小,以便网格没有空白空间。应该很容易适应您的需求。

您可能会注意到,CalcDrawInfo 方法正是您要寻找的。由于它是 protected ,您可以使用类助手或通常的 protected-hack 来处理它。

procedure TDbGridHelper.AutoSizeLastColumn;
var
DrawInfo: TGridDrawInfo;
ColNo: Integer;
begin
ColNo := ColCount - 1;
CalcDrawInfo(DrawInfo);
if (DrawInfo.Horz.LastFullVisibleCell < ColNo - 1) then Exit;

if (DrawInfo.Horz.LastFullVisibleCell < ColNo) then
ColWidths[ColNo] := DrawInfo.Horz.GridBoundary - DrawInfo.Horz.FullVisBoundary
else
ColWidths[ColNo] := ColWidths[ColNo] + DrawInfo.Horz.GridExtent - DrawInfo.Horz.FullVisBoundary
end;

关于delphi - 如何在Delphi中使用滚动条找到网格组件的实际宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1716870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com