procedure TForm2.DB4Columns();
var
i,j,S,S1,S2:Integer;
m,n:String;
begin
DBGRD4.DataSource.DataSet.RecNo:=1;
for i:=0 to DBGRD4.DataSource.DataSet.FieldCount-1 do
begin
S:=0;
for j:=1 to ADOQUREY4.RecordCount do
begin
m:=DBGRD4.Fields[i].AsString;
S1:=length(trim(m));
m:=DBGRD4.Fields[i].FieldName;
S2:=length(trim(m));
if S1>S then
S:=S1;
if S2>S then
S:=S2;
DBGRD4.DataSource.DataSet.RecNo:=j+1;
end;
DBGRD4.Columns[i].Width:=S*8;
end;
end;
上面的程序段是我写的一个函数 是可以调节DBGRD4的列宽的 但是我想把它该为可以调节任何一个DBGRD的列宽,例如DB4Columns(DBGRD1);的话就设置DBGRD1的列宽度,DB4Columns(DBGRD2);的话就设置DBGRD2的列宽度,那请问DB4Columns();这括号里面的方法怎么调用呢 ?
var
i,j,S,S1,S2:Integer;
m,n:String;
begin
DBGRD4.DataSource.DataSet.RecNo:=1;
for i:=0 to DBGRD4.DataSource.DataSet.FieldCount-1 do
begin
S:=0;
for j:=1 to ADOQUREY4.RecordCount do
begin
m:=DBGRD4.Fields[i].AsString;
S1:=length(trim(m));
m:=DBGRD4.Fields[i].FieldName;
S2:=length(trim(m));
if S1>S then
S:=S1;
if S2>S then
S:=S2;
DBGRD4.DataSource.DataSet.RecNo:=j+1;
end;
DBGRD4.Columns[i].Width:=S*8;
end;
end;
上面的程序段是我写的一个函数 是可以调节DBGRD4的列宽的 但是我想把它该为可以调节任何一个DBGRD的列宽,例如DB4Columns(DBGRD1);的话就设置DBGRD1的列宽度,DB4Columns(DBGRD2);的话就设置DBGRD2的列宽度,那请问DB4Columns();这括号里面的方法怎么调用呢 ?
然后把程序段里所有的DBGRD4改成db,这个过程就改完了要调用这个过程的时候,这样写: TForm2.DBColumns(DBGRD4);
var
i,j,S,S1,S2:Integer;
m,n:String;
begin
ADBGrid.DataSource.DataSet.RecNo:=1;
for i:=0 to ADBGrid.DataSource.DataSet.FieldCount-1 do
begin
S:=0;
for j:=1 to ADBGrid.DataSource.DataSet.RecordCount do
begin
m:=ADBGrid.Fields[i].AsString;
S1:=length(trim(m));
m:=ADBGrid.Fields[i].FieldName;
S2:=length(trim(m));
if S1>S then
S:=S1;
if S2>S then
S:=S2;
ADBGrid.DataSource.DataSet.RecNo:=j+1;
end;
ADBGrid.Columns[i].Width:=S*8;
end;
end;
方在所有过程或函数的前面
调用的时候传入对应的DBGrid实例名就可以了比如你要改变DBGRID4的列宽
DB4Columns(DBGrid4);