Visual Basic 6 - Destacando palavras em um Texto no controle RichtText
No artigo - VB6 - Usando o controle Rich TextBox I - dei uma introdução geral ao controle Richtext Box e no artigo - VB - trabalhando com formatação em campos Memo de banco de dados - fiz a aplicação prática da teoria. Na verdade o controle RichtText Box possui muitos recursos que podemos explorar.
Neste artigo eu vou mostrar como podemos localizar e destacar , alterando a cor da palavra , palavras em texto carregado no controle RichText Box.
Inicie um novo projeto no VB do tipo standardEXE e no formulário padrão insira os controles: RichText Box , CommandButton , TextBox e Label , conforme figura abaixo:
Agora insira o código abaixo no evento Load do formulário. Ele apenas carrega um arquivo texto para exemplo.
Private
Sub Form_Load() 'carrega um texto no controle RichTextBox1.LoadFile ("c:\teste\contrato2.txt ") lblrodape.Visible = False End Sub |
No evento Click do botão de comando inclua o código a seguir . Ele irá chamar a função destacandoPalavras com os argumentos necessários para encontrar a palavra informada na caixa de texto - Text1.text.
Private
Sub Command1_Click() 'chama a função passando o controle RichtextBox , a palavra que desejamos encontrar e Dim valor As Integer valor = destacandoPalavras(RichTextBox1, Text1.Text, vbBlue) lblrodape.Visible = True lblrodape.Caption = " Foram localizadas " & valor & " ocorrências da palavra '" & Text1.Text & "' no texto." End Sub |
A função - destacandoPalavras - muda a cor da palavra encontrada e retorna o número de ocorrências da mesma.
Private
Function destacandoPalavras(rtb As RichTextBox,
procuraString As String, cor As Long) As Integer Dim posicaoProcura As Long 'Posição do primeiro caractere a encontrar Dim procuraTamanho As Long 'comprimento da string a encontrar Dim inicioSelecaoOriginal As Long Dim tamanhoSelecionadoOriginal As Long Dim palavrasEncontradas As Integer 'Numero de vezes que a palavra foi encontrada 'Salva o ponto de inserção atual e o tamanho inicioSelecaoOriginal = rtb.SelStart tamanhoSelecionadoOriginal = rtb.SelLength 'armazena o tamanho da string a procurar procuraTamanho = Len(procuraString) 'Tenta encontrar a primeira vez posicaoProcura = rtb.Find(procuraString, 0, , rtfNoHighlight) While posicaoProcura > 0 palavrasEncontradas = palavrasEncontradas + 1 rtb.SelStart = posicaoProcura rtb.SelLength = procuraTamanho rtb.SelColor = cor 'tenta encontrar a proxima posicaoProcura = rtb.Find(procuraString, _ posicaoProcura + procuraTamanho, , rtfNoHighlight) Wend 'Restaura o ponto de inserção ao tamanho e comprimento original rtb.SelStart = inicioSelecaoOriginal rtb.SelLength = tamanhoSelecionadoOriginal 'Retorna o numero de vezes que a palavra foi encontrada destacandoPalavras = palavrasEncontradas End Function |
Executando o projeto e procurando no texto exemplo a palavra 'cidade' vemos o resultado abaixo.
l
Até a próxima dica VB...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET