Hallo,
Kann mir jemand sagen was ich falsch mache? In Zeile 45 hakt es. Wenn ihr die RichEdit ganz Oben verändert, wird per consoleWrite der Text ausgegeben. Nur fehlt da ein Buchstabe
Wo liegt mein Fehler?!
Sobald ich den ersten Buchstaben eintippe, bekomme ich @error 700 - Internal Error. Danach bleibt @error 0.
Spoiler anzeigen
#include <Array.au3>
#include <WinAPI.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Global Const $WM_IME_KEYUP = 0x0291
Global $sIniPath = @AppDataDir & "\RegExpIt\Settings.ini"
;~ If Not FileExists($sIniPath) Then ; Ini neu schreiben.
;~ IniWrite($sIniPath, "Genral Settings", "Resolution", "800x600")
;~ EndIf
$aGUIRes = StringSplit(IniRead($sIniPath, "General Settings", "Resolution", "800x600"), "x", 2)
$hGUI = GUICreate("", $aGUIRes[0], $aGUIRes[1], -1, -1, $WS_OVERLAPPEDWINDOW)
GUISetFont(12)
$hRE_RegExp = _GUICtrlRichEdit_Create($hGUI, "", 10, 10, 445, 120)
_GUICtrlRichEdit_SetFont($hRE_RegExp, 12)
GUICtrlCreateLabel("Zukünftige Symbolleiste", 10, 140, 780, 20, 0x01)
GUICtrlSetBkColor(-1, 0x00FFAA)
$hRE_TestString = _GUICtrlRichEdit_Create($hGUI, "Mayer, Meier, Peters, Maier, Meyer, Rudolfs", 10, 170, 780, 200)
_GUICtrlRichEdit_SetFont($hRE_TestString, 12)
$hRE_Matches = _GUICtrlRichEdit_Create($hGUI, "", 10, 390, 780, 200)
_GUICtrlRichEdit_SetFont($hRE_Matches, 15)
;~ Dim $hRE_ARRAY[3][2] = [[$hRE_RegExp, ""],[$hRE_TestString, ""],[$hRE_Matches, ""]]
Dim $aRE_BKCOLORS[5] = [0xAADD55, 0xF0F0AA, 0xAAAA11, 0x112233, 0x00DDFD] ;Zufällige Farben für gefundene Subpatterns ("richtige" Farben kommen später)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
GUIDelete($hGUI) ;GUI löschen, wegen RichEdit.
Exit
EndSwitch
_RichEdit_ApplyRegExp()
WEnd
Func _RichEdit_ApplyRegExp()
If _GUICtrlRichEdit_IsModified($hRE_RegExp) Then
ConsoleWrite(_GUICtrlRichEdit_GetText($hRE_RegExp) & @TAB & @error & @TAB & @extended & @CRLF) ; <<------------- Warum fehlt da immer ein Buchstabe?!
_GUICtrlRichEdit_SetModified($hRE_RegExp, False)
$aTmp = StringRegExp(_GUICtrlRichEdit_GetText($hRE_TestString), _GUICtrlRichEdit_GetText($hRE_RegExp), 3)
If Not @error Then
_GUICtrlRichEdit_SetText($hRE_Matches, _ArrayToString($aTmp, @CRLF))
EndIf
EndIf
EndFunc ;==>_RichEdit_ApplyRegExp