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]

Responder a