我有一个连接到FDMemTable的字符串网格,当我第一次运行AutoSize过程(添加到它的类助手)时,一切都很完美。
之后,当我尝试重新打开FDMemTable时,我的标题返回到默认大小,但其他行保持不变。
我的程序如下:
procedure TStringGridHelper.AutoSizeCols;
var
i, W, WMax: integer;
Column : Integer;
begin
for Column := 0 to Self.ColumnCount-1 do
begin
if Self.ColumnByIndex(Column).Width > 0 then
begin
WMax := Round(Canvas.TextWidth(Self.ColumnByIndex(Column).Header));
for i := 0 to (Self.RowCount - 1) do begin
W := Round(Canvas.TextWidth(Self.Cells[Column, i]));
if W > WMax then
WMax := W;
if WMax > SizeMax then
begin
WMax := SizeMax;
Break;
end;
end;
Self.ColumnByIndex(Column).Width := WMax + 10;
end;
end;
end;如果手动调整列的大小,它将恢复正常。
我正在使用XE7及其多设备应用程序(FireMonkey)
发布于 2015-07-08 19:27:18
通过更改FDMemTable(任何字段),它恢复了正常。
我刚打电话给我的点菜程序。
发布于 2015-07-08 14:20:46
这看起来像DelphiUpdate1bug。
在Delphi XE8上,您的代码运行良好。

在德尔福XE7 Update1上,这看起来很奇怪。

https://stackoverflow.com/questions/31294798
复制相似问题