你可以编程设置每一列的宽度及总宽度啊,
然后如果超宽了可以在总宽度上加上垂直滚动条的宽度
下面一个程序段可能对你有启发:
procedure TForm1.StringGrid1Ini(Sender: TObject);
var
ParaFile:TextFile;
line,N,Name:string;
Row,i:integer;
begin
with stringgrid1 do //设置题头
begin
cells[0,0]:='参数号';
cells[1,0]:='参数名称';
cells[2,0]:='10进制';
cells[3,0]:='16进制';
ColWidths[0]:=38;
ColWidths[1]:=200;
ColWidths[2]:=42;
ColWidths[3]:=42;
width:=ColWidths[0]+ColWidths[1]+
ColWidths[2]+ColWidths[3]+26;
end;
另外你可以在程序用行数*行高和窗体高度比较来判断是否会加垂直滚动条