Claro que tem! const CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
eventos da Grid. procedure TfrmExportaXML.DBGrid2DblClick(Sender: TObject); begin if not (DM.ClientDataSet.State in [dsEdit]) then DM.ClientDataSet.Edit; if DBGrid2.SelectedIndex = 8 then begin if DM.ClientDataSet.FieldByName('CAMPO').AsString = '0' then DM.ClientDataSet.FieldByName('CAMPO').AsString := '1' else DM.ClientDataSet.FieldByName('CAMPO').AsString := '0'; end else begin if DBGrid2.SelectedIndex = 9 then begin if DM.ClientDataSet.FieldByName('CAMPO').AsString = '0' then DM.ClientDataSet.FieldByName('CAMPO').AsString := '1' else DM.ClientDataSet.FieldByName('CAMPO').AsString := '0'; end else begin if DBGrid2.SelectedIndex = 10 then begin if DM.ClientDataSet.FieldByName('CAMPO').AsString = '0' then DM.ClientDataSet.FieldByName('CAMPO').AsString := '1' else DM.ClientDataSet.FieldByName('CAMPO').AsString := '0'; end; end; end end; procedure TfrmExportaXML.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DM.ClientDataSet.RecordCount > 0 then begin if (Column.FieldName = 'CAMPO') or (Column.FieldName = 'CAMPO') or (Column.FieldName = 'CAMPO')then begin Self.DBGrid2.Canvas.FillRect(Rect); CheckBoxRectangle.Left := Rect.Left + 2; CheckBoxRectangle.Right := Rect.Right - 2; CheckBoxRectangle.Top := Rect.Top + 2; CheckBoxRectangle.Bottom := Rect.Bottom - 2; if (DataCol = 8) then begin if (DM.ClientDataSet.FieldByName('CAMPO').AsString = '1') then DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[True]) else DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[False]); end else begin if (DataCol = 9) then begin if (DM.ClientDataSet.FieldByName('CAMPO').AsString = '1') then DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[True]) else DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[False]); end else begin if (DataCol = 10) then begin if (DM.ClientDataSet.FieldByName('CAMPO').AsString = '1') then DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[True]) else DrawFrameControl(Self.DBGrid2.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[False]); end; end; end; end; end; end; ----- Original Message ----- From: Tiago Zacchi To: Grupo_Delphi-Br Sent: Friday, June 15, 2007 8:01 AM Subject: [delphi-br] CheckBox na DBGrid. Tem Como? Olá pessoal! Gostaria de seber se tem fazer com que um dos campos da minha DBGrid seja um CheckBox, ou algo parecido! Tem como fazer isso ? Obrigado, [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]