Lógico .... VC pode colocar qualquer coisa no dbgrid da vcl...loockup, combobox, checkbox, radiobuton, ímagens e até esmo um memo, mas dar um trabalho..........tem que fazer tudo na mão...por linha de codigo... Uma solução mas PRática e melhor, seria VC usa a cxgrid da devexpress.. excelente componente e VC pode fazer tudo isso que eu falei sem digitar uma linha de código, somente configurando as propriedades do comonente -------Mensagem original------- De: Márcio Ricardo Data: 15/06/2007 09:00:36 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] CheckBox na DBGrid. Tem Como? 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] __________ Información de NOD32, revisión 2329 (20070614) __________ Este mensaje ha sido analizado con NOD32 antivirus system http://www.nod32.com [As partes desta mensagem que não continham texto foram removidas]