PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Verificar quais itens checkados DBGRID #505881

31/12/2014

0

Boa noite, estou precisando resolver um problema. Eu tenho uma DBGrid ligada a um ClientDataSet. Esse CDS tem um Field do tipo Boolean, daí eu fiz os seguintes procedimentos na minha DBGrid:
procedure TfrmEnvSMS.gridTelefonesCellClick(Column: TColumn);
begin
  with dmDados do
  begin
    CDSNumTel.Edit;

    if CDSNumTelSEL.Value = False then
      CDSNumTelSEL.Value := True
    else
      CDSNumTelSEL.Value := False;

    CDSNumTel.Post;
  end;
end;

procedure TfrmEnvSMS.gridTelefonesDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  Check: Integer;
  R: TRect;
  DrawState: Integer; DrawRect: TRect;
begin
  with dmDados do
  begin
    if Column.FieldName = 'SEL' then
    begin

      gridTelefones.Canvas.FillRect(Rect);
      Check := 0;
      if CDSNumTelSEL.Value = True then
        Check := DFCS_CHECKED
      else
        Check := 0;
      R:=Rect;
      InflateRect(R,-2,-2); //Diminue o tamanho do CheckBox
      gridTelefones.Canvas.Font.Color := clWindow;
      gridTelefones.Canvas.Brush.Color := clWindow;
      gridTelefones.Canvas.FillRect(Rect);
      DrawFrameControl(gridTelefones.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
    end;
  end;
end;


Esses eventos acima fazem aparecer o checkbox na grid e faz com que eu marque ou desmarque o Check.
Agora vem minha dúvida, eu tenho uma rotina para envio de e-mail que deve verificar no CDS quais são os dados que estão checkados, para que somente seja enviado e-mail para esses dados checkados. Digamos que eu tenho 5 registros no CDS porém eu selecionei somente 2 na DBGrid, daí o e-mail seria enviado somente para os dois.

Se precisarem de mais alguma informação me avisem.
Uso Delphi XE
Marlon Minotti

Marlon Minotti

Responder

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

Aceitar