Mudar a Cor das Linhas de Grade do DBGrid
Pessoal,
Alguém saberia como mudar a cor das linhas de grade do DBGrid???
Valeu Galera!!!!!!!!!!!!!!!
Marcelo Ribeiro
Alguém saberia como mudar a cor das linhas de grade do DBGrid???
Valeu Galera!!!!!!!!!!!!!!!
Marcelo Ribeiro
Marceloribeiro
Curtidas 0
Respostas
Marceloribeiro
16/06/2005
por favor pessoal... ajuda aí!!!!
eu sei que aqui só tem fera..... pô....
eu sei que aqui só tem fera..... pô....
GOSTEI 0
Pro-luck
16/06/2005
Procure no link Pesquisar que se encontra no topo desta página e tente localizar digitando o seguinte assunto: Colorir o DBGrid.
Aperece aos montes...
Espero q consiga...
Aperece aos montes...
Espero q consiga...
GOSTEI 0
Marceloribeiro
16/06/2005
Cara,
O código p/ mudar a cor da linha selecionada e já tenho...
O que eu procuro, é uma forma de deixar aquelas linhas (cinza) da grade do DBGrid tudo preto, ou seja, no lugar do cinza deixar preto, será que é possível???? será que uma coisa tão básica assim o Delphi não permite?
Agradeço a ajuda!!!
O código p/ mudar a cor da linha selecionada e já tenho...
O que eu procuro, é uma forma de deixar aquelas linhas (cinza) da grade do DBGrid tudo preto, ou seja, no lugar do cinza deixar preto, será que é possível???? será que uma coisa tão básica assim o Delphi não permite?
Agradeço a ajuda!!!
GOSTEI 0
Massuda
16/06/2005
O que eu procuro, é uma forma de deixar aquelas linhas (cinza) da grade do DBGrid tudo preto, ou seja, no lugar do cinza deixar preto, será que é possível????
Não. Depois de dar uma olhada em como o grid é desenhado, deu para ver que a cor da linha é hard coded... a única coisa que se prevê é no caso da cor do grid ser clSilver (o cinza que você mencionou), a cor da linha é mudada para clGray (cinza escuro).Neste caso, você teria que tirar as linhas do grid (tire as linhas da propriedade Options do grid) e passar a desenhar as linhas você mesmo no evento OnDrawColumnCell (no caso do TDBGrid) ou OnDrawCell (caso do TStringGrid e do TDrawGrid).
GOSTEI 0
Macario
16/06/2005
[quote:1377d9361e=´MarceloRibeiro´]O que eu procuro, é uma forma de deixar aquelas linhas (cinza) da grade do DBGrid tudo preto, ou seja, no lugar do cinza deixar preto, será que é possível????
Não. Depois de dar uma olhada em como o grid é desenhado, deu para ver que a cor da linha é hard coded... a única coisa que se prevê é no caso da cor do grid ser clSilver (o cinza que você mencionou), a cor da linha é mudada para clGray (cinza escuro).Neste caso, você teria que tirar as linhas do grid (tire as linhas da propriedade Options do grid) e passar a desenhar as linhas você mesmo no evento OnDrawColumnCell (no caso do TDBGrid) ou OnDrawCell (caso do TStringGrid e do TDrawGrid).[/quote:1377d9361e]
Tipo seria usando a variavel Rect???
E nesse caso há alguma perca de performance?
GOSTEI 0
Massuda
16/06/2005
[quote:6620bc08fd=´Macario o Aspone´]Tipo seria usando a variavel Rect???[/quote:6620bc08fd]Se eu entendi o que você quis dizer, sim. Você desenha um pedaço da grade em cada célula.
[quote:6620bc08fd=´Macario o Aspone´]E nesse caso há alguma perca de performance?[/quote:6620bc08fd]Não a ponto de ser perceptível.
[quote:6620bc08fd=´Macario o Aspone´]E nesse caso há alguma perca de performance?[/quote:6620bc08fd]Não a ponto de ser perceptível.
GOSTEI 0
Macario
16/06/2005
legal. 8)
Neste caso preciso aprender sobre ela ´TRect´.
Tipo alguem pode indicar algum material sobre o assunto?
Grato.
Neste caso preciso aprender sobre ela ´TRect´.
Tipo alguem pode indicar algum material sobre o assunto?
Grato.
GOSTEI 0
Fx|hand
16/06/2005
Ficou um pouco complicado... + se vc intender, e conseguir fazer os loopings pra colorir o negociu... fica legal... ^^
eu usei o StringGrid... + se vc usar o DBGrid tbm dah na mesma !!!
Byee
eu usei o StringGrid... + se vc usar o DBGrid tbm dah na mesma !!!
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
r: TRect;
begin
{PEGANDO A LOCALIZAÇÃO DA LINHA}
r.Left := StringGrid1.ColWidths[0] + 2;
r.Top := StringGrid1.RowHeights[0];
r.Bottom := StringGrid1.RowHeights[0] * 2;
r.Right := StringGrid1.Width;
//MUDANDO A COR PRA VERMELHO
StringGrid1.Canvas.Brush.Color := clRed;
//PREENCHENDO COM O VERMELHO A LOCALIZAÇÃO DA LINHA INTEIRA
StringGrid1.Canvas.FillRect(r);
//MUDANDO PRA BSCLEAR
StringGrid1.Canvas.Brush.Style := bsClear;
//MUDANDO A COR DA FONTE
StringGrid1.Canvas.Font.Color := clWhite;
//IMPRIMINDO O TEXTO DA CELULA 1,1
//CENTRALIZADO DE CIMA PRA BAIXO
StringGrid1.Canvas.TextOut(r.Left,(r.Top + r.Bottom -
StringGrid1.Canvas.TextHeight(StringGrid1.Cells[1,1])) div 2,StringGrid1.Cells[1,1]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//PREENCHENDO ALGUMAS CELULAS
StringGrid1.Rows[1].Text := ´teste´;
StringGrid1.Cols[1].Text := ´teste´;
StringGrid1.Cells[1,1] := ´teste´;
end;
Byee
GOSTEI 0
Macario
16/06/2005
Na boa não consegui adaptar o codigo pra dbgrid.
Tipo o tempo ta curto, ultimamente. :roll:
Tipo o tempo ta curto, ultimamente. :roll:
GOSTEI 0
Emrj
16/06/2005
:D
Valeu FX|HanD !!!
Me ajudou muito!
fiz somente uma adaptação
[b:269edbc866]
if ( ACol mod 2) > 0 then
begin
sgMapa.Canvas.Brush.Color:=$0053A9FF;
sgMapa.Canvas.Font.Color :=clBlack;
sgMapa.Canvas.FillRect(Rect);
sgMapa.Canvas.TextOut(Rect.Left+2, Rect.Top+10, sgMapa.Cells[Acol,ARow]);
end;[/b:269edbc866]
Desse jeito cada celula fica de uma cor.
Vlw!
Valeu FX|HanD !!!
Me ajudou muito!
fiz somente uma adaptação
[b:269edbc866]
if ( ACol mod 2) > 0 then
begin
sgMapa.Canvas.Brush.Color:=$0053A9FF;
sgMapa.Canvas.Font.Color :=clBlack;
sgMapa.Canvas.FillRect(Rect);
sgMapa.Canvas.TextOut(Rect.Left+2, Rect.Top+10, sgMapa.Cells[Acol,ARow]);
end;[/b:269edbc866]
Desse jeito cada celula fica de uma cor.
Vlw!
GOSTEI 0