Selecao DevMedia QUERO SER PRIME

Fórum Como alterar fonte num listview dependendo de uma condição? #323771

19/06/2006

0

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.


Vitoreduardo

Vitoreduardo

Responder

Posts

20/06/2006

Rodc

ListView1.Font.Style := [fsBold];

Isto não resolve o problema?


Responder

Gostei + 0

20/06/2006

Vitoreduardo

Fala rodc

Não funcionou.

Fiz assim:
If DM_Geral.IBDSContas.FieldByName(´Situacao´).Value = ´Pago´then
begin
 ListView1.Font.Style := [fsBold]; 
end;



Responder

Gostei + 0

20/06/2006

Rodc

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.
    if (Item.Caption = ´teste´)
    begin
        Sender.Canvas.Font->Style := [fsBold];
        Sender.Canvas.TextOut(0, 0, ´´);
    end;

Abraços,


Responder

Gostei + 0

20/06/2006

Rodc

Opâ, no código troca o ´->´ por ponto. É que eu copiei do BCB.


Responder

Gostei + 0

20/06/2006

Vitoreduardo

Ow rodc blz?

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.


Responder

Gostei + 0

21/06/2006

Rodc

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;



Responder

Gostei + 0

21/06/2006

Vitoreduardo

Fiz isso:
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.


Responder

Gostei + 0

21/06/2006

Rodc

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar