DBGrid - colocando checkbox em uma coluna da grid |
Top Previous Next |
/////// modo legal
procedure TForm1.DBGrid1DrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Check: Integer; begin if Column.FieldName = '' then begin DBGrid1.Canvas.FillRect(Rect); Check := 0; if Table1['PREFERRED'] then Check := DFCS_CHECKED; DrawFrameControl(DBGrid1.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK or Check); end else DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
------------------------------- exemplo 2 ------------------------------ // coloque ROWSELECT e ALWAYS SHOW SELECION para TRUE
procedure TMainForm.GridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var PosX: Integer; Cor : TColor; begin if Column.Field = TbMarca then begin PosX := Rect.Left + (Column.Width div 2) - (Image1.Picture.Bitmap.Width div 2); if (gdSelected in State) then Cor := clHighlight else Cor := clWindow; Grid.Canvas.FillRect(Rect); if TbMarca.AsBoolean then DrawTransparent(PosX, Rect.Top + 1, Image1.Picture.Bitmap, Grid.Canvas, Cor) else DrawTransparent(PosX, Rect.Top + 1, Image2.Picture.Bitmap, Grid.Canvas, Cor); end; end; |