Hallo Leute,
ich habe folgendes Problem und zwar möchte ich in einem RichEdit mit einer Funktion Spezielle Wörter einfärben, nun habe ich aber keine Ahnung wie ich das machen soll.
Ich hab einen sehr umständlichen weg mal ausprobiert aber dieser scheint nicht zu funktionieren.
EDIT: Hab es mal modifiziert ... also ein Wort kann ich jetzt einfärben nur stürzt es beim 2. Wort ab...
Spoiler anzeigen
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GuiRichEdit.au3>
#include <Misc.au3>
$Width = @DesktopWidth
$Height = @DesktopHeight
$hGui = GUICreate("Test",$Width,$Height,0,0,BitOR($WS_POPUP,$WS_MAXIMIZE));,$WS_EX_TOPMOST);Fullscreen Fenster
#region Datei-Menu
$Menu_Handle_Datei = GUICtrlCreateMenu("Datei")
$Menu_Item_Datei = GUICtrlCreateMenuItem("Neu",$Menu_Handle_Datei)
$Menu_Item_Offnen = GUICtrlCreateMenuItem("Öffnen",$Menu_Handle_Datei)
$Platzhalter_1 = GUICtrlCreateMenuItem("",$Menu_Handle_Datei)
$Menu_Item_Speichern = GUICtrlCreateMenuItem("Speichern",$Menu_Handle_Datei)
$Menu_Item_SpeichernUnter = GUICtrlCreateMenuItem("Speichern unter",$Menu_Handle_Datei)
$Platzhalter_2 = GUICtrlCreateMenuItem("",$Menu_Handle_Datei)
$Menu_Item_Beenden = GUICtrlCreateMenuItem("Beenden",$Menu_Handle_Datei)
#endregion
#region Bearbeiten-Menu
$Menu_Handle_Bearbeiten = GUICtrlCreateMenu("Bearbeiten")
#endregion
#region Edit-Feld
$hMain_Edit = _GUICtrlRichEdit_Create($hGui,"",$Width / 6,25,$Width / 1.5,$Height * 0.75,BitOR($ES_AUTOHSCROLL,$ES_AUTOVSCROLL,$ES_MULTILINE,$ES_WANTRETURN))
#endregion
GUISetState(@SW_SHOW)
While Sleep(10)
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $Menu_Item_Beenden
_Exit($hGui)
EndSwitch
If _GUICtrlRichEdit_IsModified($hMain_Edit) == True Then
_Color_Words($hMain_Edit,_GUICtrlRichEdit_GetText($hMain_Edit))
_GUICtrlRichEdit_SetModified($hMain_Edit,False)
EndIf
WEnd
Func _Color_Words($hEdit,$Edit)
Local $wPos
_GUICtrlRichEdit_SetCharColor($hEdit,0x000000)
If StringInStr($Edit,"Hallo") > 0 Then
_Color_All_Words($hEdit,"Hallo",0xFF0000)
EndIf
EndFunc
Func _Color_All_Words($hEdit,$Word,$Color)
Local $SplitWord, $SplitText, $MatchCount = 0
$SplitText = StringSplit(_GUICtrlRichEdit_GetText($hEdit),"")
$SplitWord = StringSplit($Word,"")
For $i = 1 To $SplitText[0] Step 1
If $SplitText[$i] == $SplitWord[1] Then
For $ii = 1 To $SplitWord[0] Step 1
If $SplitText[$i + ($ii - 1)] == $SplitWord[$ii] Then
$MatchCount += 1
Else
$MatchCount = 0
EndIf
If $MatchCount == $SplitWord[0] Then
_GUICtrlRichEdit_SetSel($hEdit,$i - 1,$i - 1 + $SplitWord[0],True)
_GUICtrlRichEdit_SetCharColor($hEdit,$Color)
_GUICtrlRichEdit_Deselect($hEdit)
;MsgBox(0,"",$Word & " found at " & $i - 1)
;ExitLoop
EndIf
Next
EndIf
Next
EndFunc
Func _Exit($hG)
For $i = 255 To 0 Step -10
WinSetTrans($hG,"",$i)
Sleep(2)
Next
Exit
EndFunc