1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
procedure TMaForm.DrawCheckBox(Sender : TObject; Rect: TRect; _Bool: boolean);
var
RCell : Trect;
begin
RCell :=Rect;
OffsetRect(RCell, 2,round(0.5 * (RCell.bottom - RCell.top)));
RCell.right := RCell.left + GetSystemMetrics(SM_CXMENUCHECK);
RCell.bottom := RCell.top + GetSystemMetrics(SM_CYMENUCHECK);
RCell.top := RCell.top - round(0.5 * (RCell.bottom - RCell.top) + 2);
(Sender as TDbGrid).Canvas.FillRect(Rect);
if _Bool then
DrawFrameControl(StringGrid.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK or DFCS_CHECKED)
else
DrawFrameControl(StringGrid.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK)
end;
dans le ondraw de ton Dbgrid
if Assigned(Column.Field) then
begin
// if Column.FieldName = COLONNE_BOOLEAN then
if Column.Field.DataType = ftBoolean then
DrawCheckBox(sender as TDBGrid,Rect,Column.Field.AsBoolean)
end; |
Partager