Fórum Intercalar cor da fonte no RichEdit #300002
19/10/2005
0
Tenho uma tabela que contém os seguintes campos:
DE
MENSAGEM
Preciso colocar os valores num RichEdit como se fosse o MSN messenger. Exemplo:
[b:4b40ec566c]ding diz:[/b:4b40ec566c]
[color=green:4b40ec566c][b:4b40ec566c]Blá, blá, blá[/b:4b40ec566c][/color:4b40ec566c]
[b:4b40ec566c]ling diz:[/b:4b40ec566c]
[color=red:4b40ec566c][b:4b40ec566c]Blé, blé, blé[/b:4b40ec566c][/color:4b40ec566c]
[b:4b40ec566c]ding diz:[/b:4b40ec566c]
[color=green:4b40ec566c][b:4b40ec566c]Blí, blí, blí[/b:4b40ec566c][/color:4b40ec566c]
[b:4b40ec566c]ling diz:[/b:4b40ec566c]
[color=red:4b40ec566c][b:4b40ec566c]Bló, bló, bló[/b:4b40ec566c][/color:4b40ec566c]
Estou inserindo as linhas com o comando [b:4b40ec566c]RichEdit1.Lines.Add();[/b:4b40ec566c].
Só que não sei como fazer para ir trocando a cor da fonte, quando mudo a cor, está mudando a cor de todas as linhas, e não apenas a da que eu adicionei.
Já procurei aki no fórum e não vi nenhum tópico que me ajudasse.
Desde já agradeço,
Tenil
Curtir tópico
+ 0Posts
19/10/2005
Tenil
if ADOQMensagens.Active then begin RichEdit1.Clear; ADOQMensagens.First; while not ADOQMensagens.Eof do begin RichEdit1.Lines.Add(ADOQMensagensDe.AsString + ´ diz:´); RichEdit1.Lines.Add(´ ´ + ADOQMensagensMensagem.AsString); ADOQMensagens.Next; end; end;
Gostei + 0
20/10/2005
Tenil
Gostei + 0
20/10/2005
Tenil
Gostei + 0
20/10/2005
Tenil
Gostei + 0
20/10/2005
Marcio.theis
if ADOQMensagens.Active then begin RichEdit1.Clear; ADOQMensagens.First; while not ADOQMensagens.Eof do begin RichEdit1.SelAttributes.Color:=clBlack; RichEdit1.SelAttributes.Style:=[fsBold]; RichEdit1.Lines.Add(ADOQMensagensDe.AsString + ´ diz:´); RichEdit1.SelAttributes.Color:=color; RichEdit1.SelAttributes.Style:=[fsBold]; RichEdit1.Lines.Add(´ ´ + ADOQMensagensMensagem.AsString); if (color = clRed) then color:=clGreen else color:=clRed; ADOQMensagens.Next; end; end;
vc somente deve declarar uma variável como o nome de color no Privete do seu formulário:
private
{ Private declarations }
color: Tcolor;Gostei + 0
20/10/2005
Tenil
if ADOQMensagens.Active then begin RichEdit1.Clear; ADOQMensagens.First; quem := ADOQMensagensDe.AsString; while not ADOQMensagens.Eof do begin RichEdit1.SelAttributes.Color := clBlack; RichEdit1.Lines.Add(Copy(ADOQMensagensDe.AsString, 0, Pos(´@´,ADOQMensagensDe.AsString)-1) + ´ diz:´); if ADOQMensagensDe.AsString = quem then begin RichEdit1.SelAttributes.Color := clRed; end else begin RichEdit1.SelAttributes.Color := clBlue; end; RichEdit1.Paragraph.LeftIndent := 20; RichEdit1.Lines.Add(´ ´ + ADOQMensagensMensagem.AsString); ADOQMensagens.Next; end; end;
Obrigado pela ajuda.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)