如题
解决方案 »
- 我想在delphi中取一段字符串中的一段字符,字符不是固定长度
- 关于ADOConnection事务处理
- functional可一次返回多个值吗
- 小强外挂网(www.sisz.com)诚邀外挂高手加盟
- 请教一个ADO的问题!!
- DELPHI 中显示JPEG图象需要包含什么 .pas?
- 请帮助
- 打印机分辨率
- 在InterBase中如何支持Create,Drop命令?(我只有7分了真可怜!~~)
- 请问大家哪里有For Delphi 6的增强DBGrid控件,例如DBgrid里面可以有Checkbox?
- 紧急求救Delphi创建的服务程序
- !!!在线:1.怎样截字符串前三个字符:P 2.测试一个邮箱需要捕获哪些异常。
procedure TSelectForm.AdjustMaxWidth;
var
i, vCount: Integer;
vMaxWidth: array[0..30] of Integer;
vTextLength: Integer;
vNameLength: Integer;
begin
//初始化
for i := 0 to 20 do vMaxWidth[i] := 0;
//取得最大宽度 with SysDM.dsSelect.DataSet do
begin
DisableControls;
First;
//取得数据宽度
while not Eof do
begin
for i := 0 to dbg.Columns.Count - 1 do
begin
vTextLength := Length(Trim(dbg.Fields[i].AsString));
vNameLength := Length(Trim(dbg.Fields[i].Fieldname));
if vTextLength > vMaxWidth[i] then vMaxWidth[i] := vTextLength + 3;
if vTextLength < vNameLength then vMaxWidth[i] := vNameLength + 3;
end;
Next;
end;
First;
//当记录为空时,取列名宽度
if IsEmpty then
begin
for i := 0 to dbg.Columns.Count - 1 do
begin
vNameLength := Length(Trim(dbg.Fields[i].Fieldname));
vMaxWidth[i] := vNameLength;
end;
end;
EnableControls;
end;
//设置最大宽度,计算总长度
vCount := 0;
for i := 0 to dbg.Columns.Count - 1 do
begin
dbg.Columns[i].Width := vMaxWidth[i] * 8;
vCount := vCount + vMaxWidth[i] * 8;
end;
//设置DBG宽度
dbg.Width := vCount + 50;
end;