Bikin Checkbox di Dbgrid
Caranya adalah sbb
---------------------------------------------------------------------------
private
FOriginalOptions : TDBGridOptions;private
procedure SaveBoolean;
----------------------------------------------------------------------------
procedure Tfrm_vtgh.SaveBoolean;
begin
Self.crDBGrid1.SelectedField.Dataset.Edit;
Self.crDBGrid1.SelectedField.AsBoolean := not
Self.crDBGrid1.SelectedField.AsBoolean;
if Self.crDBGrid1.SelectedField.AsBoolean then
Self.CRDBGrid1.Fields[0].Value:='Tertagih'
else Self.CRDBGrid1.Fields[0].Value:='';
Self.crDBGrid1.SelectedField.Dataset.Post;
end;
begin
Self.crDBGrid1.SelectedField.Dataset.Edit;
Self.crDBGrid1.SelectedField.AsBoolean := not
Self.crDBGrid1.SelectedField.AsBoolean;
if Self.crDBGrid1.SelectedField.AsBoolean then
Self.CRDBGrid1.Fields[0].Value:='Tertagih'
else Self.CRDBGrid1.Fields[0].Value:='';
Self.crDBGrid1.SelectedField.Dataset.Post;
end;
---------------------------------------------------------------------------
pada event oncolenter, ketikan kode dibawah ini
if Self.crDBGrid1.SelectedField.DataType = ftBoolean then
begin
Self.FOriginalOptions := Self.crDBGrid1.Options;
Self.crDBGrid1.Options := Self.crDBGrid1.Options -[dgEditing];
end;
----------------------------------------------------------------------
begin
Self.FOriginalOptions := Self.crDBGrid1.Options;
Self.crDBGrid1.Options := Self.crDBGrid1.Options -[dgEditing];
end;
----------------------------------------------------------------------
Pada event oncolexit, ketikan kode dibawah ini
if Self.crDBGrid1.SelectedField.DataType = ftBoolean then
Self.crDBGrid1.Options := Self.FOriginalOptions;
Self.crDBGrid1.Options := Self.FOriginalOptions;
----------------------------------------------------------------------
Pada event DrawColumnCell, kodenya sbb, ikuti dan sesuaikan
Const
CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK,DFCS_BUTTONCHECK or DFCS_CHECKED);
var
CheckBoxRectangle : TRect;
begin
if Column.Field.DataType = ftBoolean then
begin
Self.crDBGrid1.Canvas.FillRect(Rect);
CheckBoxRectangle.Left := Rect.Left + 2;
CheckBoxRectangle.Right := Rect.Right - 2;
CheckBoxRectangle.Top := Rect.Top + 2;
CheckBoxRectangle.Bottom := Rect.Bottom - 2;
DrawFrameControl(Self.crDBGrid1.Canvas.Handle,CheckBoxRectangle,DFC_BUTTON,
CtrlState[Column.Field.AsBoolean]);
end;
var
CheckBoxRectangle : TRect;
begin
if Column.Field.DataType = ftBoolean then
begin
Self.crDBGrid1.Canvas.FillRect(Rect);
CheckBoxRectangle.Left := Rect.Left + 2;
CheckBoxRectangle.Right := Rect.Right - 2;
CheckBoxRectangle.Top := Rect.Top + 2;
CheckBoxRectangle.Bottom := Rect.Bottom - 2;
DrawFrameControl(Self.crDBGrid1.Canvas.Handle,CheckBoxRectangle,DFC_BUTTON,
CtrlState[Column.Field.AsBoolean]);
end;
end;
-----------------------------------------------------------------------------------------------------------
projrcknya bisa di upload gak gan