Fórum Dbchebox em uma dbgrid #404821
12/07/2011
0
Tenho um formulario de pedido que ao cadastra-lo deixo automatico o campo STATUS como '0', estou exibindo o pedido em uma db grid, porem gostaria de adicionar os dbcheckbox na coluna do dbgrid e alterar o valor do STATUS de '0' para '1'.
Daniel
Curtir tópico
+ 0
Responder
Posts
12/07/2011
Daniel Qualhato
Chará ve se isso te ajuda
NO EVENTO DRAWCOLUMNCELL ADD O CODIGO
[CODIGO]
procedure Tfrmfrequencia.DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Check: Integer;
R: TRect;
begin
if(Column.FieldName = 'FRECF_CEL1')then
begin
DBGrid2.Canvas.FillRect(Rect);
if dmdados.tbl_frequenciaFFRECF_CEL1.AsString = 'SIM' then
Check := DFCS_CHECKED
else
Check := 0;
R:=Rect;
InflateRect(R,-2,-2); {Diminue o tamanho do CheckBox}
DrawFrameControl(DBGrid2.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
end; [/CODIGO] Agora no evento ONCELLCLICK DO DBGRID ADD O CODIGO [CODIGO] procedure Tfrmfrequencia.DBGrid2CellClick(Column: TColumn);
begin
if dmdados.tbl_frequenciaF.RecordCount > 0 then begin
dmdados.tbl_frequenciaF.Edit;
if DBGrid2.SelectedIndex = 1 then
begin
if dmdados.tbl_frequenciaFFRECF_CEL1.AsString = 'SIM' then
begin
if Application.MessageBox('Deseja desmarcar a Presença deste Membro?','Confirma',+mb_iconquestion + mb_yesno)=idyes then
dmdados.tbl_frequenciaFFRECF_CEL1.AsString := 'Não';
end
else
dmdados.tbl_frequenciaFFRECF_CEL1.AsString := 'SIM';
if (dmdados.tbl_frequenciaF.State in [dsEdit])then
dmdados.tbl_frequenciaF.Post;
end; [/CODIGO] AGORA BASTA ADAPTALO CONFORME A SUA NECESSIDADE E TESTAR A SUA APLICAÇÃO
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Check: Integer;
R: TRect;
begin
if(Column.FieldName = 'FRECF_CEL1')then
begin
DBGrid2.Canvas.FillRect(Rect);
if dmdados.tbl_frequenciaFFRECF_CEL1.AsString = 'SIM' then
Check := DFCS_CHECKED
else
Check := 0;
R:=Rect;
InflateRect(R,-2,-2); {Diminue o tamanho do CheckBox}
DrawFrameControl(DBGrid2.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
end; [/CODIGO] Agora no evento ONCELLCLICK DO DBGRID ADD O CODIGO [CODIGO] procedure Tfrmfrequencia.DBGrid2CellClick(Column: TColumn);
begin
if dmdados.tbl_frequenciaF.RecordCount > 0 then begin
dmdados.tbl_frequenciaF.Edit;
if DBGrid2.SelectedIndex = 1 then
begin
if dmdados.tbl_frequenciaFFRECF_CEL1.AsString = 'SIM' then
begin
if Application.MessageBox('Deseja desmarcar a Presença deste Membro?','Confirma',+mb_iconquestion + mb_yesno)=idyes then
dmdados.tbl_frequenciaFFRECF_CEL1.AsString := 'Não';
end
else
dmdados.tbl_frequenciaFFRECF_CEL1.AsString := 'SIM';
if (dmdados.tbl_frequenciaF.State in [dsEdit])then
dmdados.tbl_frequenciaF.Post;
end; [/CODIGO] AGORA BASTA ADAPTALO CONFORME A SUA NECESSIDADE E TESTAR A SUA APLICAÇÃO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)