Moin zusammen,
Ich versuch mich im Moment mal mit dem Thema RichEdit auseinander zusetzen. Klappt soweit auch ganz gut, bis auf eins. Wenn ich bei meinem Script den Befehl
[autoit]_GUICtrlRichEdit_StreamToVar
[/autoit]benutze, bekomme ich nicht den Text des RichEdits zurück. Manchmal schmiert das Script auch ab. Kann mir da mal bitte einer helfen. Finde den Fehler nicht.
Spoiler anzeigen
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <GuiStatusBar.au3>
#include <Misc.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$MainForm = GUICreate("MainForm", 1025, 769, 192, 124)
$MenuItem2 = GUICtrlCreateMenu("MenuItem2")
$MenuItem1 = GUICtrlCreateMenu("MenuItem1")
$StatusBar1 = _GUICtrlStatusBar_Create($MainForm)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 26)
$Edit1 = _GUICtrlRichEdit_Create($MainForm, "", 30, 75, 471, 151, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$Edit2 = _GUICtrlRichEdit_Create($MainForm, "", 30, 245, 471, 161, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$Edit3 = _GUICtrlRichEdit_Create($MainForm, "", 30, 430, 476, 171, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$Button_Fett = GUICtrlCreateButton("F", 5, 5, 26, 21)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Button_Kursiv = GUICtrlCreateButton("K", 35, 5, 26, 21)
GUICtrlSetFont(-1, 8, 400, 2, "MS Sans Serif")
$Button_Unter = GUICtrlCreateButton("U", 65, 5, 26, 21)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
$Combo_Grosse = GUICtrlCreateCombo("8", 270, 5, 51, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "10|12|14|16|18|20|22|24|28|36|48|72|80")
$Button_Color = GUICtrlCreateButton("Text-Farbe", 95, 5, 71, 21)
$Button_BkColor = GUICtrlCreateButton("Hintergrund-Farbe", 170, 5, 96, 21)
$Label_ausrichtung = GUICtrlCreateLabel("Ausrichtung: ", 330, 8, 66, 17)
$Button_links = GUICtrlCreateButton("Links", 400, 5, 46, 21)
$Button_mitte = GUICtrlCreateButton("Mitte", 450, 5, 46, 21)
$Button_rechts = GUICtrlCreateButton("Rechts", 500, 5, 46, 21)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
[/autoit] [autoit][/autoit] [autoit]$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
RichExit()
Case $Button_Fett
$RichEditHwnd = get_RichEdit()
fett($RichEditHwnd)
Case $Button_Kursiv
$RichEditHwnd = get_RichEdit()
kursiv($RichEditHwnd)
Case $Button_Unter
$RichEditHwnd = get_RichEdit()
unter($RichEditHwnd)
Case $Combo_Grosse
$RichEditHwnd = get_RichEdit()
grosse($RichEditHwnd)
Case $Button_Color
$RichEditHwnd = get_RichEdit()
color($RichEditHwnd)
Case $Button_BkColor
$RichEditHwnd = get_RichEdit()
bk_color($RichEditHwnd)
Case $Button_links
$RichEditHwnd = get_RichEdit()
$sort = "links"
sort($RichEditHwnd,$sort)
Case $Button_mitte
$RichEditHwnd = get_RichEdit()
$sort = "mitte"
sort($RichEditHwnd,$sort)
Case $Button_rechts
$RichEditHwnd = get_RichEdit()
$sort = "rechts"
sort($RichEditHwnd,$sort)
EndSwitch
WEnd
Func get_RichEdit()
Select
Case _GUICtrlRichEdit_IsTextSelected($Edit1)
Return $Edit1
Case _GUICtrlRichEdit_IsTextSelected($Edit2)
Return $Edit2
Case _GUICtrlRichEdit_IsTextSelected($Edit3)
Return $Edit3
EndSelect
EndFunc ;==>get_RichEdit
Func sort($RichEdit,$ausrichtung)
If $ausrichtung = "links" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "l")
If $ausrichtung = "mitte" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "c")
If $ausrichtung = "rechts" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "r")
EndFunc ;==>color
[/autoit] [autoit][/autoit] [autoit]Func color($RichEdit)
$color = _ChooseColor()
_GUICtrlRichEdit_GetSel($RichEdit)
_GUICtrlRichEdit_SetCharColor($RichEdit, $color);"804080")
EndFunc ;==>color
Func bk_color($RichEdit)
$color = _ChooseColor()
_GUICtrlRichEdit_GetSel($RichEdit)
_GUICtrlRichEdit_SetCharBkColor($RichEdit, $color);"804080")
EndFunc ;==>bk_color
Func grosse($RichEdit)
$soll_size = GUICtrlRead($Combo_Grosse)
_GUICtrlRichEdit_SetFont($RichEdit, $soll_size)
$stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
_GUICtrlRichEdit_SetText($Edit2,$stream)
EndFunc ;==>grosse
Func fett($RichEdit)
$attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)
$fett = StringInStr($attribs, "bo+")
$nicht_fett = StringInStr($attribs, "bo-")
Select
Case $fett <> 0
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "-bo")
Case $nicht_fett <> 0
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+bo")
Case Else
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+bo")
EndSelect
$stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
_GUICtrlRichEdit_SetText($Edit2,$stream)
;~ MsgBox(0,"","" & $stream)
EndFunc ;==>fett
Func kursiv($RichEdit)
$attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)
$kursiv = StringInStr($attribs, "it+")
$nicht_kursiv = StringInStr($attribs, "it-")
Select
Case $kursiv <> 0
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "-it")
Case $nicht_kursiv <> 0
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+it")
Case Else
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+it")
EndSelect
$stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
_GUICtrlRichEdit_SetText($Edit2,$stream)
EndFunc ;==>kursiv
Func unter($RichEdit)
$attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)
$unter = StringInStr($attribs, "un+")
$nicht_unter = StringInStr($attribs, "un-")
Select
Case $unter
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "-un")
Case $nicht_unter
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+un")
Case Else
_GUICtrlRichEdit_SetCharAttributes($RichEdit, "+un")
EndSelect
$stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
_GUICtrlRichEdit_SetText($Edit2,$stream)
EndFunc ;==>unter
Func RichExit()
_GUICtrlRichEdit_Destroy($Edit1)
_GUICtrlRichEdit_Destroy($Edit2)
_GUICtrlRichEdit_Destroy($Edit3)
Exit
EndFunc ;==>RichExit