Fórum DbGrid com CheckBox - Limpar marcados #354006
18/02/2008
0
Pessoal,
Boa tarde!
Tenho um DBGrid onde faço uma selecao das linhas atravez de checkbox no proprio DBGrid.
O que eu preciso é de um metodo para marcar ou limpar todos os checkbox existentes no DBGrid.
Alguem sabe como fazer isso?
No DBGrid coloquei os CheckBox da seguinte maneira:
No evento DrawDataCell eu coloquei o seguinte codigo:
E no evento CellClick o seguinte codigo:
Se alguem puder dar uma ajuda.
Obrigado!
Boa tarde!
Tenho um DBGrid onde faço uma selecao das linhas atravez de checkbox no proprio DBGrid.
O que eu preciso é de um metodo para marcar ou limpar todos os checkbox existentes no DBGrid.
Alguem sabe como fazer isso?
No DBGrid coloquei os CheckBox da seguinte maneira:
No evento DrawDataCell eu coloquei o seguinte codigo:
if (Field.FieldName = ´ID_CLIENTE´) and (not (gdFixed in State)) then begin // Desenha um campo em branco dbgRegistros.Canvas.FillRect(Rect); // Testa de a linha está selecionada ou não if dbgRegistros.SelectedRows.IndexOf(dbgRegistros.DataSource.DataSet.Bookmark) >= 0 then DrawFrameControl(dbgRegistros.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK or DFCS_CHECKED) else DrawFrameControl(dbgRegistros.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK); end;
E no evento CellClick o seguinte codigo:
dbgRegistros.SelectedRows.CurrentRowSelected := not dbgRegistros.SelectedRows.CurrentRowSelected;
Se alguem puder dar uma ajuda.
Obrigado!
Mmoreira
Curtir tópico
+ 0
Responder
Posts
26/03/2008
Abpaula
Usando o seu código como modelo criei a seguinte função, ela pose ser chamada através de um popup_menu na grade com três funcionalidades diferentes.
1 - Marcar todas
2 - Desmarcar todas
3 - Inverter seleção
Obrigado!!!
1 - Marcar todas
2 - Desmarcar todas
3 - Inverter seleção
Obrigado!!!
Procedure TFPrincipal.Selecao_Grade(Tipo : Integer); Begin Dataset.DisableControls; Dataset.First; While not Dataset.Eof do Begin If Tipo = 1 then// Marcar todos Grade.SelectedRows.CurrentRowSelected := True Else If Tipo = 2 then // Desmarcar todas Grade.SelectedRows.CurrentRowSelected := False Else If Tipo = 3 then // Alternar seleção Grade.SelectedRows.CurrentRowSelected := not Grade.SelectedRows.CurrentRowSelected; Dataset.Next; End; Dataset.First; Dataset.EnableControls; End;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)