{问题一:} {每一个复选框对应一列,在每个复选框onClick中写代码,如:}procedure TForm1.CheckBox1Click(Sender: TObject); begin dbgrid1.Columns[0].Visible:=not CheckBox1.Checked; end;procedure TForm1.CheckBox2Click(Sender: TObject); begin dbgrid1.Columns[1].Visible:=not CheckBox2.Checked; end;{....}{问题二:} dbgrid1.Columns[1].Width:=200; {自己指定宽度}
补充 CheckBox初始值为false,即未打勾选中.
function FindColumn(DBGrid: TDBGrid; FieldName: string): TColumn; var i: Integer; begin for i := 0 to DBGrid.Columns.Count - 1 do begin Result := DBGrid.Columns[i]; if SameText(Result.FieldName, FieldName) then Exit; end; Result := nil; end;var AColumn: TColumn; begin AColumn := FindColumn(DBGrid1, '你要设置的字段');//先找你要设置字段对应的DBgrid列 if AColumn <> nil then begin AColumn.Width := 100; AColumn.Visible := CheckBox.Checked; end;
{问题一:}
{每一个复选框对应一列,在每个复选框onClick中写代码,如:}procedure TForm1.CheckBox1Click(Sender: TObject);
begin
dbgrid1.Columns[0].Visible:=not CheckBox1.Checked;
end;procedure TForm1.CheckBox2Click(Sender: TObject);
begin
dbgrid1.Columns[1].Visible:=not CheckBox2.Checked;
end;{....}{问题二:}
dbgrid1.Columns[1].Width:=200; {自己指定宽度}
CheckBox初始值为false,即未打勾选中.
var
i: Integer;
begin
for i := 0 to DBGrid.Columns.Count - 1 do
begin
Result := DBGrid.Columns[i];
if SameText(Result.FieldName, FieldName) then
Exit;
end;
Result := nil;
end;var
AColumn: TColumn;
begin
AColumn := FindColumn(DBGrid1, '你要设置的字段');//先找你要设置字段对应的DBgrid列
if AColumn <> nil then
begin
AColumn.Width := 100;
AColumn.Visible := CheckBox.Checked;
end;