Text / RichText bearbeiten

22/08/2008 - 08:29 von Lothar Geyer | Report spam
Ich möchte in einer Text- oder RichText-Box bestimmte Worte automatisch
in einer anderen Farbe darstellen. Und wenn der Anwender auf eines der
Worte klickt, die Farbe für dieses Wort àndern können. Ist das überhaupt
möglich und falls ja, wie?

Lothar Geyer
 

Lesen sie die antworten

#1 Juergen Thuemmler
23/08/2008 - 10:20 | Warnen spam
Hallo Lothar,

Ich möchte in einer Text- oder RichText-Box bestimmte Worte automatisch in
einer anderen Farbe darstellen. Und wenn der Anwender auf eines der Worte
klickt, die Farbe für dieses Wort àndern können. Ist das überhaupt möglich
und falls ja, wie?



es kommt wohl nur eine Richtextbox in Frage. Zum Colorieren von Textteilen
brauchst Du .SelStart, .SelLength und .SelColor. Die Verbindung zwischen
Mausposition und Text erhàltst Du *sinngemàß* über (Deklarationen etc.
weggelassen):
Private Sub RichTextBox1_MouseMove(Button%, Shift%, X!, Y!)
Static pt As POINTAPI

With pt
.X = X / tpx 'Screen.TwipsPerPixelX
.Y = Y / tpy 'Screen.TwipsPerPixelY
End With
'# Index des Buchstaben unter dem Cursor
pos = SendMessage(rtfhwnd, EM_CHARFROMPOS, 0, pt)
If pos < 1 Then Exit Sub

' Hier von pos ausgehend nach links und rechts Wortanfang und -ende suchen
' (mal nach WordFromPoint googlen)
For i = pos to 1 Step -1
M = Mid$(RTF.Text, i, 1)
'# If M = Wortanfang Then Exit For
Next
For j = pos to Len(RTF.Text)
M = Mid$(RTF.Text, j, 1)
'# If M = Wortende Then Exit For
Next
End Sub

Jetzt kannst Du das Wort von i bis j colorieren.

Jürgen.

Ähnliche fragen