Fórum Coloacar cor na célula ativa do DBGrid #256814
01/11/2004
0
Desde já agradeço...
Rodrigo Freire;..;;
Rgfreire
Curtir tópico
+ 0Posts
01/11/2004
Gurc
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
01/11/2004
Rgfreire
Gostei + 0
08/11/2004
Gurc
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
Clique aqui para fazer login e interagir na Comunidade :)