TEXTO COLORIDO NO RICHTEXTBOX
Pessoal...
Como faço para inserir parte de texto colorido no RichTextBox ???
Bem, o sistema vai ser assim:
Tenho duas TextBoxes que enviarão textos para a RichTextBox... sendo que o texto que partir da txt1 deve ser apresentado no RTB na cor azul...e o que partir da txt2 tem de ser apresentado na cor vermelho...
Comecei com algumas tentativas a partir de dicas que encontrei na NET...mas não tá dando certo...pois sempre a cor que permanece é a cor que foi colocada em primeiro na RTB.
script:
Como faço para inserir parte de texto colorido no RichTextBox ???
Bem, o sistema vai ser assim:
Tenho duas TextBoxes que enviarão textos para a RichTextBox... sendo que o texto que partir da txt1 deve ser apresentado no RTB na cor azul...e o que partir da txt2 tem de ser apresentado na cor vermelho...
Comecei com algumas tentativas a partir de dicas que encontrei na NET...mas não tá dando certo...pois sempre a cor que permanece é a cor que foi colocada em primeiro na RTB.
script:
Dim T_atual As Integer, Tam As Integer, Inicio As Integer
Dim Todo_Texto As String
T_atual = Len(Rtb1.Text)
Todo_Texto = Rtb1.Text
Tex = txtCli.Text
Tam = Len(Tex)
With Rtb1
.Text = .Text & Tex
.SelStart = T_atual
.SelLength = Tam
.SelColor = RGB(255, 0, 0)
.SelBold = True
.Text = .Text & vbNewLine
End With
Teu código ta errado, manolo...
Isso vai dar o tamanho do texto. Entao, nao muda cor pq tu nao ta selecionando nada...
Tenta assim:
E posta o resultado ai
T_atual = Len(Rtb1.Text)
Isso vai dar o tamanho do texto. Entao, nao muda cor pq tu nao ta selecionando nada...
Tenta assim:
T_atual = 1
E posta o resultado ai
Tens certeza ???
porque [txt-color=#0000f0]T_atual[/txt-color] aloca o tamanho do texto contido na RTB, fazendo com que inicie a seleção (SelStart) sempre após o que já esta digitado dentro da RTB...fazendo assim as alterações solicitadas...
porque [txt-color=#0000f0]T_atual[/txt-color] aloca o tamanho do texto contido na RTB, fazendo com que inicie a seleção (SelStart) sempre após o que já esta digitado dentro da RTB...fazendo assim as alterações solicitadas...
Se não me engano, no RichTextBox tu tem que SELECIONAR primeiro e depois mudar a cor.
Ou seja, sempre selecionar o que tem ANTES << e ai mudar a cor.
Mas tenta ai...
Ou seja, sempre selecionar o que tem ANTES << e ai mudar a cor.
Mas tenta ai...
Ou posta o teu projeto ai para que a gente possa te ajudar olhando o teu caso, o teu código e atua tela!!!
Bem...
Se puderem me dizer como [txt-color=#0000f0]manter[/txt-color] a formatação exata (cor, fonte e etc...) do texto que está na RTB antes de receber o novo texto, já ajuda muito
pois quero mudar somente a cor do texto que está sendo adicionado ao RTB...o que já está tem de ficar sem alterações...
ao incluir eu faço:
Onde NovoTexto é a variável que contém o texto que pretendo adicionar ao que já está na RTB...porém se configuro para mudar a cor apenas do texto que está entrando, o sistema muda todo RTB...
Estou tentando assim:
Onde estou errando ???
Se puderem me dizer como [txt-color=#0000f0]manter[/txt-color] a formatação exata (cor, fonte e etc...) do texto que está na RTB antes de receber o novo texto, já ajuda muito
pois quero mudar somente a cor do texto que está sendo adicionado ao RTB...o que já está tem de ficar sem alterações...
ao incluir eu faço:
Rtb1.Text = Rtb1.Text & NovoTexto
Onde NovoTexto é a variável que contém o texto que pretendo adicionar ao que já está na RTB...porém se configuro para mudar a cor apenas do texto que está entrando, o sistema muda todo RTB...
Estou tentando assim:
Dim Tam_Ini As Integer, TamTexto As Integer
Dim NovoTexto As String
Tam_Ini = Len(Rtb1.Text) [ô] Aqui pego quantas letras tem o RTB antes de receber o NovoTexto
NovoTexto = InputBox([Ô]Escreva o Texto que deseja adicionar:[Ô], [Ô]Texto a adicionar:[Ô])
TamTexto = Len(Texto) [ô] Aqui pego a quantidade de letras que tem o NovoTexto
With Rtb1
.Text = .Text & NovoTexto & vbNewLine [ô] Aqui adiciono o NovoTexto ao RTB
.SelStart = Tam_Ini [ô] Aponto que a partir do NovoTexto é que deve-se fazer as alterações
.SelLength = TamTexto [ô] Informo o tamanho do texto que deve sofrer as alterações
.SelColor = Cor [ô] Informo a cor que deve ser (está em uma variável)
.SelBold = True [ô] Ativo o efeito Bolt no texto
End With
Onde estou errando ???
Manolo, por algum motivo, quando se adiciona via código algum texto no RTBOX, ele perde a formatação.
Não sei pq, mas ta acontecendo aqui.
Sugestões:
->guardar posições que tem que ter cor diferente e colorir todas sempre que um texto for adicionado
->enviar o texto para o RTB via [Ô]SENDKEYS[Ô], ja que isso não tira a formatação
->procurar uma solução na net, pois não vejo outra
Não sei pq, mas ta acontecendo aqui.
Sugestões:
->guardar posições que tem que ter cor diferente e colorir todas sempre que um texto for adicionado
->enviar o texto para o RTB via [Ô]SENDKEYS[Ô], ja que isso não tira a formatação
->procurar uma solução na net, pois não vejo outra
Com o SENDKEYS funcionou
Private Sub btnInserir_Click()
Dim iTamanhoAnterior As Integer
Dim iTamanhoNovoTexto As Integer
Dim iTamanhoFinal As Integer
Dim sTextoFormatado As String
[ô]
iTamanhoNovoTexto = Len(txtFrase.Text)
[ô]
If iTamanhoNovoTexto > 0 Then
[ô]
iTamanhoAnterior = Len(rtbTexto.Text)
[ô]
rtbTexto.SetFocus
SendKeys txtFrase.Text, 1000
[ô]
iTamanhoFinal = Len(rtbTexto.Text)
[ô]
rtbTexto.SelStart = iTamanhoAnterior + 1
rtbTexto.SelLength = iTamanhoNovoTexto
[ô]
rtbTexto.SelColor = vbRed
[ô]
End If
[ô]
If Len(rtbTexto.Text) > 0 Then
rtbTexto.SelStart = Len(rtbTexto.Text) - 1
Else
rtbTexto.SelStart = 0
End If
[ô]
rtbTexto.SelLength = 1
rtbTexto.SelColor = vbBlack
[ô]
rtbTexto.SelStart = Len(rtbTexto.Text)
rtbTexto.SelLength = 0
[ô]
End Sub
ASHKATCHUP
Cara, eu não sabia que o SendKeys era usado dessa forma também
geralmente só uso quando quero simular uma tecla...
Obrigado cara ! ta funcionando aqui também
Cara, eu não sabia que o SendKeys era usado dessa forma também
geralmente só uso quando quero simular uma tecla...
Obrigado cara ! ta funcionando aqui também
Tópico encerrado , respostas não são mais permitidas