Coloacar cor na célula ativa do DBGrid
Como faço para colocar cor na célula ativa do DBGrid? Estou precisando desta informação para acabar a codificação do meu programa.
Desde já agradeço...
Rodrigo Freire;..;;
Desde já agradeço...
Rodrigo Freire;..;;
Rgfreire
Curtidas 0
Respostas
Gurc
01/11/2004
No evento OnDrawColumnCell do DBGrid coloque
A propriedade DefaultDrawing do TDBGrid corresponde a pintura padrão das células. Neste caso, a mesma se torna necessária se for desejado um retângulo de foco na(s) célula(s) selecionada(s). Faça um teste e comprove a diferença.
Acho que é isso,
Gustavo Royer Chaurais
with Sender as TDBGrid do begin if gdFocused in State then begin Canvas.Brush.Color := clYellow; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
A propriedade DefaultDrawing do TDBGrid corresponde a pintura padrão das células. Neste caso, a mesma se torna necessária se for desejado um retângulo de foco na(s) célula(s) selecionada(s). Faça um teste e comprove a diferença.
Acho que é isso,
Gustavo Royer Chaurais
GOSTEI 0
Rgfreire
01/11/2004
A registro só assume a cor colocada no DrawCollumnCell qdo clico em cima dele. Estou usando uma pesquisa e gostaria que o registro assumisse a cor ao ser encontrado. Você pode me ajudar;???
GOSTEI 0
Gurc
01/11/2004
Sem problemas, vamos tentar explicar uns conceitos aqui então.
Imagine, como você faria para preencher um DBGrid. Bom, teria de percorrer registro a registro de um DataSet, certo? Certo, é isso que o DBGrid faz, só que ele só pede para o DataSet os registros que serão mostrados na grade, os outros ele só pedirá se o usuário correr a barra de rolagens. A cada registro solicitado ao DataSet o DBGrid dispara o evento de pintura da célula, o agora chamado de OnDrawColumnCell, um para cada coluna para saber como esse registro deve ser apresentado. Desta maneira podemos apresentar inclusive imagens e muitas outras coisas em um DBGrid. Bom, com isso podemos fazer o seguinte. Digamos uma busca pela palavra TESTE no campo NOME, ok?
Não testei este código, mas na teoria é assim :D. Coloque isso dentro do manipulador do evento e veja o que acontece. Se você quisesse procurar por um texto dentro de uma string use a função Pos().
Qualquer dúvida entre em contato,
Gustavo Royer Chaurais
Imagine, como você faria para preencher um DBGrid. Bom, teria de percorrer registro a registro de um DataSet, certo? Certo, é isso que o DBGrid faz, só que ele só pede para o DataSet os registros que serão mostrados na grade, os outros ele só pedirá se o usuário correr a barra de rolagens. A cada registro solicitado ao DataSet o DBGrid dispara o evento de pintura da célula, o agora chamado de OnDrawColumnCell, um para cada coluna para saber como esse registro deve ser apresentado. Desta maneira podemos apresentar inclusive imagens e muitas outras coisas em um DBGrid. Bom, com isso podemos fazer o seguinte. Digamos uma busca pela palavra TESTE no campo NOME, ok?
(...) if (Field.FieldName = ´NOME´) and (Field.AsString = ´TESTE´) then (Sender as TDBGrid).Canvas.Brush.Color := clRed; (...)
Não testei este código, mas na teoria é assim :D. Coloque isso dentro do manipulador do evento e veja o que acontece. Se você quisesse procurar por um texto dentro de uma string use a função Pos().
(...) if Pos(´TESTE´, Field.AsString) > 0 then (...)
Qualquer dúvida entre em contato,
Gustavo Royer Chaurais
GOSTEI 0