Como alterar fonte num listview dependendo de uma condição?
Fala galera blz?
Dei uma pesquisada aqui no fórum mais não achei.
To usando um listview no lugar do DBGrid e gostaria de alterar a fonte de um registro para negrito, só que dependendo de uma condição.
Num DBGrid eu faria assim Ex: if DmGeral.QRClienteNOME.Value =´Fulano´ then
DBGrid1.Canvas.Fonte.Style := [fsBold];
Mais não to conseguindo fazer isso usando o listview.
Se alguém puder me ajudar, ficarei grato.
Desde já agradeço.
Dei uma pesquisada aqui no fórum mais não achei.
To usando um listview no lugar do DBGrid e gostaria de alterar a fonte de um registro para negrito, só que dependendo de uma condição.
Num DBGrid eu faria assim Ex: if DmGeral.QRClienteNOME.Value =´Fulano´ then
DBGrid1.Canvas.Fonte.Style := [fsBold];
Mais não to conseguindo fazer isso usando o listview.
Se alguém puder me ajudar, ficarei grato.
Desde já agradeço.
Vitoreduardo
Curtidas 0
Respostas
Rodc
19/06/2006
ListView1.Font.Style := [fsBold];
Isto não resolve o problema?
GOSTEI 0
Vitoreduardo
19/06/2006
Fala rodc
Não funcionou.
Fiz assim:
Não funcionou.
Fiz assim:
If DM_Geral.IBDSContas.FieldByName(´Situacao´).Value = ´Pago´then begin ListView1.Font.Style := [fsBold]; end;
GOSTEI 0
Rodc
19/06/2006
Usando a função OnCustomDrawItem() do ListView eu consegui fazer a linha ficar em negrito. Mas não entendi bem como funciona, porque se tirar a linha do TextOut ele não faz o negrito. Mas tenta aí. Se não conseguir dá uma olhada no help e na net para descobrir como estes eventos de OnDraw do ListView funcionam.
Abraços,
if (Item.Caption = ´teste´) begin Sender.Canvas.Font->Style := [fsBold]; Sender.Canvas.TextOut(0, 0, ´´); end;
Abraços,
GOSTEI 0
Rodc
19/06/2006
Opâ, no código troca o ´->´ por ponto. É que eu copiei do BCB.
GOSTEI 0
Vitoreduardo
19/06/2006
Ow rodc blz?
Fiz do jeito que vc falo.
Mais não deu muito certo não, só se o ultimo registro tiver com a situação igual a pago, só que ai todos os registro fica em negrito.
Mais vou continuar tentando.
Obrigado.
Fiz do jeito que vc falo.
if (Item.Caption = ´teste´) begin Sender.Canvas.Font->Style := [fsBold]; Sender.Canvas.TextOut(0, 0, ´´); end;
Mais não deu muito certo não, só se o ultimo registro tiver com a situação igual a pago, só que ai todos os registro fica em negrito.
Mais vou continuar tentando.
Obrigado.
GOSTEI 0
Rodc
19/06/2006
Tente tirar o negrito nos outros casos:
if (Item.Caption = ´teste´) begin Sender.Canvas.Font.Style := [fsBold]; Sender.Canvas.TextOut(0, 0, ´´); end else begin Sender.Canvas.Font.Style := []; Sender.Canvas.TextOut(0, 0, ´´); end;
GOSTEI 0
Vitoreduardo
19/06/2006
Fiz isso:
Mais mesmo assim todos os registros ficam em negrito.
if (Item.Caption = ´teste´) begin Sender.Canvas.Font.Style := [fsBold]; Sender.Canvas.TextOut(0, 0, ´´); end else begin Sender.Canvas.Font.Style := []; Sender.Canvas.TextOut(0, 0, ´´); end;
Mais mesmo assim todos os registros ficam em negrito.
GOSTEI 0
Rodc
19/06/2006
Tenta usar nos outros eventos ´Draw´ do componente, dá uma olhada no help para saber como usar os eventos, e procura no google algum código usando estas funções e que tenha a palavra ´fsBold´, talvês você encontre.
GOSTEI 0