Avatar billede sjh Nybegynder
24. august 2000 - 23:05 Der er 3 kommentarer og
1 løsning

Finde en tekst og give den en anden farve

Hvordan får man \"RichTextBox1\" til at finde en tekst og give den en anden farve eller font,
lige som i mange Htmlskriver hvor koderne får en anden farve.
Filen bliver åbnet som en *.txt file.

    Open \"C:\\Filename.txt\" For Input As #1
    Input #1, tName
    Close #1
    RichTextBox1 = tName
Avatar billede sjensen Nybegynder
25. august 2000 - 12:24 #1
I delphi hvor der også findes en RichEdit komponent bruger man hhv. richedit.selstart og richedit.sellength til at sætte området der skal farves og derefter sætte farvevalget.

Jeg gætter på at det er noget af det samme i VB, men jeg er desværre ikke helt sikker.
Avatar billede sjh Nybegynder
25. august 2000 - 21:51 #2
Desværre ved jeg godt at jeg skal bruge \"SelStart\" og \"SelLength\".
Jeg har et Script der bare ikke funker helt som jeg vil, det laver kun den ene \"Tekst\" om til rød skrift.


Private Sub RichTextBox1_Change()
    Dim Search, Where

    Search = \"Tekst\"

    Where = InStr(RichTextBox1.Text, Search)
    If Where Then
    RichTextBox1.SelStart = Where - 1
    RichTextBox1.SelLength = Len(Search)
    RichTextBox1.SelColor = &HFF&
    RichTextBox1.SelStart = Where - 1
Else
End If
End Sub

Private Sub Form_Load()
    RichTextBox1.Text = \"Her står en Tekst og en til Tekst\"
End Sub
Avatar billede buhl Nybegynder
26. august 2000 - 00:39 #3
Hej sjh
Prøv nedenstående, som du dog nok skal tilpasse til dine forms. Funktionerne Replace og ReplaceAux søger rekursivt efter alle forekomster af parameteren sSearch i strengen sSource og kalder ChangeFormat, som her er tiltænkt at ændre formatet i din RichTextBox. Nedenstående er skrevet i et notepad-dokument fra min ferie-destination og er således *ikke* testet - men prøv alligevel:)



Sub main()
    Dim s As String
    s = \"Test er godt men Test er bedre\"
    Call Replace(s, \"Test\")
End Sub

Sub Replace(sSource As String, ByVal sSearch As String)
    Call ReplaceAux(1, sSource, sSearch)
End Sub

Sub ReplaceAux(lPos As Long, sSource As String, ByVal sSearch As String)
    lPos = InStr(lPos, sSource, sSearch)
    If lPos <> 0 Then
        Call ChangeFormat(lPos, Len(sSearch))
        lPos = lPos + 1
        Call ReplaceAux(lPos, sSource, sSearch)
    End If
End Sub

Sub ChangeFormat(ByVal lPos As Long, ByVal lLength As Long)
    RichTextBox1.SelStart = lPos- 1
    RichTextBox1.SelLength = lLength
    RichTextBox1.SelColor = &HFF&
End Sub
Avatar billede sjh Nybegynder
26. august 2000 - 02:41 #4
Tak buhl, det var lige sådan jeg ville have det.

PS: ha en god ferie.

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester