【发布时间】:2014-09-10 04:25:42
【问题描述】:
我正在尝试使用 Form Resize 按比例调整列宽(开始时为 30、30、50、130、130、130),这很有效,有点...
问题 1:我想去掉 +50,但每个像素都调用了 Resize。
问题 2:如果我能收到关于宽度的拖动已停止且鼠标已释放且表单宽度稳定的通知,将解决问题 1。
问题 3:我需要帮助以减少表单宽度。我的数学不太好。
procedure TfrmMain.FormResize(Sender: TObject);
var
i : Integer;
aPcntR : Real;
aPcntI : Integer;
anInc : Integer;
begin
if aClientWidth < 1 then Exit;
if aClientWidth = ClientWidth then Exit;
if aClientWidth+50 > ClientWidth then Exit; // Only adjust after an increase of at least 50
aPcntR:=(((aClientWidth-ClientWidth) / ClientWidth)*100.0);
aPcntI:=Abs(Round(aPcntR));
for i:=0 to dbgridItems.Columns.Count-1 do
begin
anInc:=dbgridItems.Columns[i].Width*aPcntI div 100;
dbgridItems.Columns[i].Width:=dbgridItems.columns[i].Width+anInc;
end;
aClientWidth:=ClientWidth;
aClientHeight:=ClientHeight;
end;
【问题讨论】:
标签: delphi delphi-5 column-width