Linhas Coloridas no String Grid
Olá! Gostaria de saber como colocar cor no texto em cada linha do string grid, no caso de o cara entrasse com débito o texto ficaria em vermelho e se entrasse com crédito o texto ficaria com a cor azul!!
desde já obrigado! :wink:
desde já obrigado! :wink:
Btovix
Curtidas 0
Respostas
Fabio.hc
19/05/2004
Tente assim:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if Query1Campo.Value = ´Debito´ then // coloque aqui sua condição DBGrid1.Canvas.Font.Color:= clRed // coloque aqui a cor desejada else DBGrid1.Canvas.Font.Color:= clBlue; // coloque aqui a cor desejada DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, State); end;
GOSTEI 0
Btovix
19/05/2004
Valeu Fábio.. mas eu tô fazendo uma entrada com [b:672b255e7b]stringgrid[/b:672b255e7b] não dbgrid. :roll: (não dá pra usar o canvas porque eu não uso query) usuário coloca um valor e se esse valor for menor que 0 eu quero colocar a linha da fonte em vermelho se for entrada coloca a linha em azul!!
Mesmo assim brigadão cara! Se vc ou mais alguém souber como eu posso alterar esses valores eu agradeço! []´s a todos! :wink:
Mesmo assim brigadão cara! Se vc ou mais alguém souber como eu posso alterar esses valores eu agradeço! []´s a todos! :wink:
GOSTEI 0
Licabh
19/05/2004
Um exemplo de colorir uma determinada linha
No evento onDrawCell do stringgrid,
Espero que tenha ajudado.
][´s Aline[/code]
No evento onDrawCell do stringgrid,
procedure TfrmAgendaRc.stgDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
i, j:Integer;
{***}
procedure DrawCellText;
var
Text: array[0..255] of Char;
begin
StrPCopy( Text, stg.Cells[ ACol, ARow ] );
ExtTextOut( stg.Canvas.Handle, Rect.Left + 2, Rect.Top + 2,
ETO_CLIPPED or ETO_OPAQUE, @Rect, Text, StrLen( Text ),nil );
end;
{***}
procedure DrawCellColor( CorLetra : TColor );
begin
with stg.Canvas do
begin
{pinta as letras com a cor desejada}
Font.Color := CorLetra;
DrawCellText;
end;
end;
{***}
begin
for i := 1 to stg.RowCount do
begin
j := pos(IntToStr(i), Linhas);
// Nesta variável linha, coloque as linhas que possuem o conteudo que
// vc deseja verificar
if J > 0 then
if stg.Cells[0, i] <> ´´ then
if (ARow = i) then
DrawCellColor( clRed );
end;
end;Espero que tenha ajudado.
][´s Aline[/code]
GOSTEI 0
Btovix
19/05/2004
Olha eu agradeço a vocês que responderam e aviso que eu já consegui!! se alguém quiser pode postar aqui que eu mando o código.. mas eu acho que esse que tá aqui da licabh funciona tb!! :)
GOSTEI 0
Oziasl
19/05/2004
btovix
qual as instruções você usou para resolver o problema. Estou com esse problema também. ozias
qual as instruções você usou para resolver o problema. Estou com esse problema também. ozias
GOSTEI 0
Oziasl
19/05/2004
btovix
como faço pegar o seu código, referente a esse assunto. Estou com esse problema também. Ozias
como faço pegar o seu código, referente a esse assunto. Estou com esse problema também. Ozias
GOSTEI 0