Dbgrid
Estou querendo mudar a cor das linhas de um dbgrid de acordo com o status dos registros. Eu até consegui mas não consigo fazer a seleção da linha aparecer. Por exemplo: Se eu tenho uma linha pintada de verde, se eu clicar nela gostaria que ela ficasse azul (só para saber que eu estou naquele registro). O que eu fiz até agora foi isso:
no evento drawcolumncell eu digitei o seguinte:
if dm.cds_itensSTATUS.AsInteger = 1 then
begin
dbgrid1.Canvas.Brush.Color:= cllime;
dbgrid1.Canvas.Font.Color:= clWindowText;
dbgrid1.Canvas.FillRect(Rect);
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
no evento drawcolumncell eu digitei o seguinte:
if dm.cds_itensSTATUS.AsInteger = 1 then
begin
dbgrid1.Canvas.Brush.Color:= cllime;
dbgrid1.Canvas.Font.Color:= clWindowText;
dbgrid1.Canvas.FillRect(Rect);
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Roberto Rossi
Curtidas 0
Respostas
Massuda
05/05/2006
Teste o valor do parâmetro State. A célula está selecionada se ´gdSelected in State´.
GOSTEI 0
Roberto Rossi
05/05/2006
Não entendi o que você quis me dizer. O fato é que eu sei que a linha está selecionada porque tem a ´flechinha´ no canto que indica, mas eu quero que a linha que está selecionada fique pintada de outra cor (para melhor visualização). Eu sei que nas propriedades do dbgrid eu tenho que deixar true as opções (dgrowselect e dgalwaysshowselection), mas com esse código que eu digitei para pintar as linhas de cor diferente dependendo do status do registro, foi anulada as propriedades acima. Eu quero saber como recuperá-las, mas continuando a usar o evento para mudança de cor.
GOSTEI 0
Massuda
05/05/2006
Dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=70098]neste tópico[/url].
GOSTEI 0