24. august 2000 - 23:05Der 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
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.
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
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
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.