在dbgrid中添加一個複選框(50分)

  • 主题发起人 主题发起人 xiaozhixiang
  • 开始时间 开始时间
X

xiaozhixiang

Unregistered / Unconfirmed
GUEST, unregistred user!
在dbgrid中添加一個複選框(就好象是裏面有一個checkbox一樣,),當打上鉤時,表示此條記錄被選中了。當不打鉤時,表示這條記錄沒有被選中。應該怎麼做呀?
 
你可以选择InfoPower.v4000.6.FS.For.Delphi7 控件包,该控件提供了对CHECKBOX等其他控件的支持,数据库开发人员必备。
 
有许多第三方控件了,不要再自己去费神了,盒子里去找找吧
 
procedure TForm1.FormCreate(Sender: TObject);
begin
if not Table1.Exists then
begin
Table1.CreateTable;
end;
Table1.Open;

end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State) and
(Column.Field = Table1Senior) then
begin
DBCheckBox1.SetBounds (
Rect.Left + DBGrid1.Left + 1,
Rect.Top + DBGrid1.Top + 1,
Rect.Right - Rect.Left + 1,
Rect.Bottom - Rect.Top + 1);
end;

end;

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if DBGrid1.Columns [DBGrid1.SelectedIndex].
Field = Table1Senior then
DBCheckBox1.Visible := True
else
DBCheckBox1.Visible := False;

end;

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if DBCheckBox1.Visible and (Ord (Key) > 31) then
begin
Key := #0;
Table1.Edit;
DBCheckBox1.Checked := not
DBCheckBox1.Checked;
DBCheckBox1.Field.AsBoolean :=
DBCheckBox1.Checked;
end;

end;
 
建议用DBGridEh,很方便,设置个属性就搞定了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
821
import
I
I
回复
0
查看
610
import
I
后退
顶部