Index: PlanScan/UI/frameKlantinstellingen.pas =================================================================== diff -u -r369 -r371 --- PlanScan/UI/frameKlantinstellingen.pas (.../frameKlantinstellingen.pas) (revision 369) +++ PlanScan/UI/frameKlantinstellingen.pas (.../frameKlantinstellingen.pas) (revision 371) @@ -16,7 +16,13 @@ dsKlantinstellingen: TDataSource; btnKlantinstellingenWijzigen: TButton; btnKlantinstellingenVerwijderen: TButton; + procedure dbgGebruikersDrawColumnCell(Sender: TObject; const Rect: TRect; + DataCol: Integer; Column: TColumn; State: TGridDrawState); + procedure dbgGebruikersEnter(Sender: TObject); + procedure dbgGebruikersColEnter(Sender: TObject); + procedure dbgGebruikersColExit(Sender: TObject); private + GridOriginalOptions : TDBGridOptions; procedure VulKlantinstellingenGridMetData(Klantinstellingen: ArrayOfKlantinstellingenKlantinstellingen); public procedure ZoekAlleKlantinstellingen(); @@ -47,6 +53,41 @@ end; end; +procedure TfrmKlantinstellingen.dbgGebruikersColEnter(Sender: TObject); +begin + if Self.dbgGebruikers.SelectedField.DataType = ftBoolean then + begin + Self.GridOriginalOptions := Self.dbgGebruikers.Options; + Self.dbgGebruikers.Options := Self.dbgGebruikers.Options - [dgEditing]; + end; +end; + +procedure TfrmKlantinstellingen.dbgGebruikersColExit(Sender: TObject); +begin + if Self.dbgGebruikers.SelectedField.DataType = ftBoolean then + Self.dbgGebruikers.Options := Self.GridOriginalOptions; +end; + +procedure TfrmKlantinstellingen.dbgGebruikersDrawColumnCell(Sender: TObject; + const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); +const + CtrlState: array[Boolean] of integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED) ; +begin + if (Column.Field.DataType=ftBoolean) then + begin + dbgGebruikers.Canvas.FillRect(Rect) ; + if VarIsNull(Column.Field.Value) then + DrawFrameControl(dbgGebruikers.Canvas.Handle,Rect, DFC_BUTTON, DFCS_BUTTONCHECK or DFCS_INACTIVE) {grayed} + else + DrawFrameControl(dbgGebruikers.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]) ; {checked or unchecked} + end; +end; + +procedure TfrmKlantinstellingen.dbgGebruikersEnter(Sender: TObject); +begin + dbgGebruikersColEnter(Sender); +end; + procedure TfrmKlantinstellingen.VulKlantinstellingenGridMetData( Klantinstellingen: ArrayOfKlantinstellingenKlantinstellingen); var