Kann ich diese Spalte
so konfigurieren das anstatt 0 oder 1 ein Häkchen für 1 gesetzt wird und keins bei 0?
Mir ist keine Einstellung im Grid selbst bekannt, aber man kann das durch einen OnDrawColumnCell-Handler erreichen. Ich habe mir dafür einen Helper geschrieben:
Delphi-Quellcode:
type
TGridHelper = class helper for TDBGrid
public
procedure DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
end;
procedure TGridHelper.DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
IsChecked : array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var
DrawState: Integer;
DrawRect: TRect;
begin
if (Column.Field is TBooleanField) then begin
DrawRect := Rect;
InflateRect(DrawRect, -1, -1);
DrawState := IsChecked[Column.Field.AsBoolean];
Canvas.FillRect(Rect);
DrawFrameControl(Canvas.Handle, DrawRect, DFC_BUTTON, DrawState);
end
else begin
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
Im OnDrawColumnCell wird dann folgender Code ausgeführt:
Delphi-Quellcode:
...
(Sender as TDBGrid).DrawColumnCell(Rect, DataCol, Column, State);
...