Eu faço da seguinte forma:
- Jogo os dados em um ClientDataset
- Crio um campo do tipo InternalCal no ClientDataset
- Coloco esse campo criado na primeira coluna do DBGrid
- Defino a Fonte dessa coluna como Marlett (nessa fonte o caracter 'a' é 
igual ao checado do TCheckBox), tamanho 10, cor azul
- No evento OnDblClick do DbGrid gravo o valor 'a' ou '' no campo do 
ClientDataset. Também pode ser colocado no evento OnKeyDown ou OnKeyPress do 
DbGrid.
- Para definir quais registros devem ser trabalhados pela sua rotina, basta 
verificar se o campo está com o valor 'a' ou ''

OBS.: No Delphi 7 tem um bug que sempre altera o estilo da fonte.Então 
coloque no evento OnShow do Form:
DbGrid.Columns.Items[0].Title.Caption := '';
DbGrid.Columns[0].Font.Style := [];

Em todos os DbGrids que tenho necessidade de CheckBox uso dessa forma. Criei 
uma função que muda o valor do campo dando o aspecto de "checado" e "não 
checado", e uso no evento OnKeyDown e OnDblClick de todos os DbGrids. Acho 
bem mais simples que implementar um DbGrid com CheckBox. Funciona muito bem 
e fica com um visual legal. 

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 

Responder a