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

Daniel

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar