Hoje eu começo uma série de artigos ensinando como utilizar os recursos avançados do componente TJvDBGrid. Ele faz parte dos componentes JEDI VCL que são gratuitos e livres.
Caso ainda não tenha o JEDI VCL instalado você pode fazer o download a partir do site http://jvcl.delphi-jedi.org/.
Com o TJvDBGrid pode-se facilmente criar colunas que mostram campos no formato de checbox, também permite o congelamento de colunas e facilita a edição de dados na grid. Nessa primeira parte ensinarei como utilizar as colunas que mostram os dados de formato de checkbox.
Crie uma nova aplicação no seu delphi e inclua os seguintes componentes ao formulário.
No evento OnCellClick do JvDBGrid1 coloque o seguinte Código:
Pronto! Basta executar o exemplo e incluir registros usando o JVDBNavigator, assim quando clicarmos na coluna CHECK será marcado ou desmarcado o checkbox dela.

É isso aí, até o próximo artigo pessoal!!!
Crie uma nova aplicação no seu delphi e inclua os seguintes componentes ao formulário.
- TDBNavigator
- TJvDBGrid
- TClientDataSet
- TDataSource
- CHECK :Booleano
- DESCRIÇÃO :String[80]
- DataSource1.DataSet := ClientDataSet1
- JvDBGrid1.DataSource := Datasource1
- DBNavigator1.DataSource := DataSource1
procedure TForm1.FormCreate(Sender: TObject); begin ClientDataSet1.CreateDataSet; end;No evento AfterInsert do Clientdataset1 coloque o seguinte código:
procedure TForm1.ClientDataSet1AfterInsert(DataSet: TDataSet); begin ClientDataSet1CHECK.AsBoolean := false; end;
No evento OnCellClick do JvDBGrid1 coloque o seguinte Código:
if Column.FieldName = 'CHECK' then begin if ClientDataSet1.IsEmpty then exit; if ClientDataSet1.State = dsBrowse then ClientDataSet1.Edit; ClientDataSet1CHECK.AsBoolean := not ClientDataSet1CHECK.AsBoolean; ClientDataSet1.Post; end;
Pronto! Basta executar o exemplo e incluir registros usando o JVDBNavigator, assim quando clicarmos na coluna CHECK será marcado ou desmarcado o checkbox dela.

É isso aí, até o próximo artigo pessoal!!!
Dica
O fato da coluna CHECK ser do tipo Booleano faz com que a JvDBGrid1 interprete automaticamente a coluna como visualização de checbox, no entanto podemos fazer isso para colunas de outros tipos de dados.
Ex.: Se a coluna CHECK fosse um String[1] e mostrasse valores S ou N então bastaria utilizar o evento OnCheckIfBooleanField e Alterar as variáveis StringForTrue := 'S' e StringForFalse := 'N'
O fato da coluna CHECK ser do tipo Booleano faz com que a JvDBGrid1 interprete automaticamente a coluna como visualização de checbox, no entanto podemos fazer isso para colunas de outros tipos de dados.
Ex.: Se a coluna CHECK fosse um String[1] e mostrasse valores S ou N então bastaria utilizar o evento OnCheckIfBooleanField e Alterar as variáveis StringForTrue := 'S' e StringForFalse := 'N'
Baixe os fontes do artigo no GitHub
Olá, estou seguindo seu post para incrementar o checkbox no meu grid, no meu caso o campo é string recebendo 'S' ou 'N', mas não consigo visualizar o check, mesmo usando o OnCheckIfBooleanField. Pode me dar mais alguma dica sobre isso, por favor? Obrigada!
ResponderExcluirOla, você conseguiu realizar os testes ?
ResponderExcluir