Function TfrmFun.FunSetDBGridEhCell(DbgName:TDBGridEh):Boolean; // 设置DBGRID列长度 var i,iLen,iPos:integer; Fini:Tinifile; TitleName:string; begin Result:=false; Fini:=TIniFile.Create(ExtractFilepath(application.ExeName)+'SetWidth.ini'); Try DbgName.Options:=DbgName.Options+[dgEditing]; for i:=0 to DbgName.Columns.Count-1 do begin TitleName:=trim(DbgName.Columns.Items[i].Title.Caption); iLen:=Length(TitleName); //长度 iPos:=Pos('日期',TitleName); //位置; if iPos>0 then TitleName:='日期' else begin iPos:=Pos('单号',TitleName); //位置; if iPos>0 then TitleName:='单号'; end; DbgName.Columns.Items[i].Width:=Fini.ReadInteger('Col',TitleName,70); if DbgName.Columns.Items[i].Width<iLen then DbgName.Columns.Items[i].Width:=iLen; end; Fini.Free; Fini:=nil; Result:=true; Except end; end; 你看看!!
var i :Integer; begin with DBGridEh1.Columns do for i := 0 to Count do begin if Items[i].Title.Caption = 'student_id' then begin Items[i].Visible := False; Break; end; end; end;
if DBGrid1.Columns.Items[i].FieldName = 'student_id' then DBGrid1.Columns.Items[i].Visible := False;
var
i,iLen,iPos:integer;
Fini:Tinifile;
TitleName:string;
begin
Result:=false;
Fini:=TIniFile.Create(ExtractFilepath(application.ExeName)+'SetWidth.ini');
Try
DbgName.Options:=DbgName.Options+[dgEditing];
for i:=0 to DbgName.Columns.Count-1 do
begin
TitleName:=trim(DbgName.Columns.Items[i].Title.Caption);
iLen:=Length(TitleName); //长度
iPos:=Pos('日期',TitleName); //位置;
if iPos>0 then
TitleName:='日期'
else
begin
iPos:=Pos('单号',TitleName); //位置;
if iPos>0 then
TitleName:='单号';
end;
DbgName.Columns.Items[i].Width:=Fini.ReadInteger('Col',TitleName,70);
if DbgName.Columns.Items[i].Width<iLen then
DbgName.Columns.Items[i].Width:=iLen;
end;
Fini.Free;
Fini:=nil;
Result:=true;
Except
end;
end;
你看看!!
------------------------
这里是数组,所以只能跟数字了!如果你要控制某一列的不显示
你可以
定义个临时变量
从0--Columns.count-1开始检查
如果某一列的caption='student_id'
那么就不显示
i :Integer;
begin
with DBGridEh1.Columns do
for i := 0 to Count do
begin
if Items[i].Title.Caption = 'student_id' then
begin
Items[i].Visible := False;
Break;
end;
end;
end;
DBGrid1.Columns.Items[i].Visible := False;