_ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

  • Hallo,
    ich habe ein Problem mit _ArrayDisplay.

    Mein Aufruf sieht so aus:

    [autoit]

    _ArrayDisplay($completearray,"Schlüsselwörter",Default,32,Default,"text1|text2|text3|text4"

    [/autoit]


    und meine Ausgabe so: [Blockierte Grafik: http://img4.fotos-hochladen.net/thumbnail/array8n1j4eghky_thumb.jpg]

    könnt Ihr mir sagen was ich falsch mache ? Ich würde gerne die das Listenelement auf der ganzen GUI sehen, und nicht nur 100x100 Pixel :)

    Grüße

  • Funktioniert bei mir einwandfrei:

    [autoit]

    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $aArr[][] = [['1 - 1', '1 - 2', '1 - 3', '1 - 4'], _
    ['2 - 1', '2 - 2', '2 - 3', '2 - 4'], _
    ['3 - 1', '3 - 2', '3 - 3', '3 - 4'], _
    ['4 - 1', '4 - 2', '4 - 3', '4 - 4']]

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aArr, 'Example', Default, 32, Default, 'text1|text2|text3|text4')

    [/autoit]

    Welche AutoIt Version nutzt du und wo ist dein Beispielskript welcher den Fehler reproduziert?

  • Danke,
    dein Beispiel funktioniert super. Wenn ich es in mein Script rein kopiere, geht es nicht mehr...
    Hier mein Script. Meine Version ist die 3.3.12.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=SQL.ico
    #AutoIt3Wrapper_Outfile=SQL Highlighter.exe
    #AutoIt3Wrapper_Res_Fileversion=2.0.0.13
    #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #comments-start
    TODO:

    [/autoit] [autoit][/autoit] [autoit]

    #comments-end

    [/autoit] [autoit][/autoit] [autoit]

    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <array.au3>
    #include <misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    global $count = 0
    global $iCpStart = 200
    global $merker = 0
    global $size
    global $inhalt
    global $titel = "SQL Syntax Highlighter"
    global $sBuffer
    global $laengeWort
    global $ininame = "syntax.ini"
    global $inipfad = @TempDir&"\"&$ininame
    global $version = FileGetVersion(@ScriptFullPath)

    [/autoit] [autoit][/autoit] [autoit]

    FileInstall("syntax.ini",$inipfad,1)

    [/autoit] [autoit][/autoit] [autoit]

    if not FileExists(@TempDir&"\"&$ininame) then
    msgbox(16,"Fehler","Die Initialisierungsdatei konnte nicht gefunden werden:"&@CRLF&$inipfad)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Global $Inisectionnames = IniReadSectionNames($inipfad)

    [/autoit] [autoit][/autoit] [autoit]

    $sektion1 = IniReadSection ($inipfad, $Inisectionnames[1] )
    $sektion2 = IniReadSection ($inipfad, $Inisectionnames[2] )
    $sektion3 = IniReadSection ($inipfad, $Inisectionnames[3] )
    $sektion4 = IniReadSection ($inipfad, $Inisectionnames[4] )
    $sektion5 = IniReadSection ($inipfad, $Inisectionnames[5] )
    $sektion6 = IniReadSection ($inipfad, $Inisectionnames[6] )
    $sektion7 = IniReadSection ($inipfad, $Inisectionnames[7] )
    $sektion8 = IniReadSection ($inipfad, $Inisectionnames[8] )
    $sektion9 = IniReadSection ($inipfad, $Inisectionnames[9] )
    $sektion10 = IniReadSection ($inipfad,$Inisectionnames[10] )

    [/autoit] [autoit][/autoit] [autoit]

    global $syn1[$sektion1[0][0]]
    for $durch = 0 to $sektion1[0][0]-1
    $syn1[$durch] = $sektion1[$durch+1][1]
    Next
    global $syn2[$sektion2[0][0]]
    for $durch = 0 to $sektion2[0][0]-1
    $syn2[$durch] = $sektion2[$durch+1][1]
    Next
    global $syn3[$sektion3[0][0]]
    for $durch = 0 to $sektion3[0][0]-1
    $syn3[$durch] = $sektion3[$durch+1][1]
    Next
    global $syn4[$sektion4[0][0]]
    for $durch = 0 to $sektion4[0][0]-1
    $syn4[$durch] = $sektion4[$durch+1][1]
    Next
    global $syn5[$sektion5[0][0]]
    for $durch = 0 to $sektion5[0][0]-1
    $syn5[$durch] = $sektion5[$durch+1][1]
    Next
    global $syn6[$sektion6[0][0]]
    for $durch = 0 to $sektion6[0][0]-1
    $syn6[$durch] = $sektion6[$durch+1][1]
    Next
    global $syn7[$sektion7[0][0]]
    for $durch = 0 to $sektion7[0][0]-1
    $syn7[$durch] = $sektion7[$durch+1][1]
    Next
    global $syn8[$sektion8[0][0]]
    for $durch = 0 to $sektion8[0][0]-1
    $syn8[$durch] = $sektion8[$durch+1][1]
    Next
    global $syn9[$sektion9[0][0]]
    for $durch = 0 to $sektion9[0][0]-1
    $syn9[$durch] = $sektion9[$durch+1][1]
    Next
    global $syn10[$sektion10[0][0]]
    for $durch = 0 to $sektion10[0][0]-1
    $syn10[$durch] = $sektion10[$durch+1][1]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $hMainGUI = GUICreate($titel, 700, 400, -1, -1,$WS_SIZEBOX + $WS_SYSMENU)
    $filemenu = GUICtrlCreateMenu("&Datei")
    $fileitem_offnen = GUICtrlCreateMenuitem("Ö&ffnen", $filemenu)
    $fileitem_save = GUICtrlCreateMenuitem("&Speichern", $filemenu)
    $highlightingmenu = GUICtrlCreateMenu("Highlighting")
    $fileitem_check = GUICtrlCreateMenuitem("Aktualisieren", $highlightingmenu)
    $fileitem_showsyntax = GuictrlCreateMenuItem("Schlüsselwörter",$highlightingmenu)
    $infomenu = GUICtrlCreateMenu("Hilfe")
    $fileitem_info = GUICtrlCreateMenuitem("Über SQL Highlighter", $infomenu)
    $hRichEdit = _GUICtrlRichEdit_Create($hMainGUI, "", 0, 0, 700, 380, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    GUIRegisterMsg($WM_SIZE,"WM_SIZE")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While True

    [/autoit] [autoit][/autoit] [autoit]

    $aktuelle_l = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    sleep(50)
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    $aktuelle_2 = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    if $aktuelle_l <> $aktuelle_2 then space()

    [/autoit] [autoit][/autoit] [autoit]

    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
    Exit
    Case $iMsg = $fileitem_save
    save()
    Case $iMsg = $fileitem_offnen
    open()
    Case $iMsg = $fileitem_check
    prufung(1)
    Case $iMsg = $fileitem_info
    about()
    Case $iMsg = $fileitem_showsyntax
    showsyn()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    func space()

    [/autoit] [autoit][/autoit] [autoit]

    If WinGetState($titel) = 15 then

    [/autoit] [autoit][/autoit] [autoit]

    $arr = _GUICtrlRichEdit_GetSel($hRichEdit) ;schauen ob nichts mrkiert ist
    if $arr[0] == $arr[1] then
    $letztes = $arr[0]

    [/autoit] [autoit][/autoit] [autoit]

    $iCpStart = _GUICtrlRichEdit_GetCharPosOfPreviousWord($hRichEdit, $letztes) ;gibt startposition meines letztes wortes aus
    ;~ ConsoleWrite($iCpStart&"-"&$arr&@CRLF)
    $wort = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $iCpStart, $letztes) ;text in der position auslesen

    [/autoit] [autoit][/autoit] [autoit]

    ;=Überprüfungen um die Abfrage zu verkürzen
    $laengeWort = stringlen($wort)

    [/autoit] [autoit][/autoit] [autoit]

    ;======Wenn erster Buchstabe ein ' dann nur den Text verändern
    $ersterBuchstabe = StringLeft($wort,1)
    if ($ersterBuchstabe ="'") and ($laengeWort > 1) then
    $wort = StringRight($wort,$laengeWort-1)
    $iCpStart = $iCpStart + 1
    endif
    ;======Wenn erster Buchstabe ein ' dann nur den Text verändern

    [/autoit] [autoit][/autoit] [autoit]

    $wort = StringReplace($wort," ","")
    $wort = StringReplace($wort,");",";")
    $wort = StringReplace($wort,"';",";")
    $wort = StringReplace($wort,'";',";")
    $wort = StringReplace($wort,'")',")")
    $wort = StringReplace($wort,",'","'")
    ;~ MsgBox(0,"",$wort)
    ConsoleWrite($wort&@CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;===================================================================================
    If $laengeWort < 20 then ;abfrage wann überhaupt gehighlightet wird

    [/autoit] [autoit][/autoit] [autoit]

    if _ArraySearch($syn1,$wort) <> -1 Then ;Ob das Wort in liste synb ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn1[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn2,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn2[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn3,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn3[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn4,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn4[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn5,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn5[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif StringIsDigit($wort) Then ;Obb das Wort eine Zahl ist
    ;~ MsgBox(0,"","asd")
    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn6[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn7,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn7[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn8,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn8[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn9,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn9[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    elseif _ArraySearch($syn10,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn10[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

    [/autoit] [autoit][/autoit] [autoit]

    else;wenn das wort nicht drinnen ist, wird wieder zurück geschrieben
    if $merker == 0 then
    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, 0x000000) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    EndIf
    endif
    ;~ MsgBox(0,"","nochmal")
    EndIf ;Ende der Abfrage ob gehighlightet wird
    $merker = 0 ;zurücksetzten bevor es erneut durch geht
    ;===================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Else ; = error meldung wenn etwas markiert
    MsgBox(16,"not","Muss das sein ?"&@CRLF&"Fehlernummer: 0x01")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func prufung($quelle)
    if $quelle = 1 then $inhalt = _GUICtrlRichEdit_GetText($hRichEdit)

    [/autoit] [autoit][/autoit] [autoit]

    $zeichenzahl = StringLen($inhalt)
    ;~ MsgBox(0,"",$zeichenzahl)

    [/autoit] [autoit][/autoit] [autoit]

    for $zahler = 0 to $zeichenzahl

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $zahler,$zahler) ;text anfang setzten
    $zeichen = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $zahler,$zahler+1)
    ConsoleWrite($zeichen)
    if $zeichen <> " " then space() ;Wenn das Zeichen ein Leerzeichen ist, wird nicht geprüft
    Next

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func dataopen()

    [/autoit] [autoit][/autoit] [autoit]

    ;==========Daten rein laden
    _GUICtrlRichEdit_SetText($hRichEdit,$inhalt)
    _GUICtrlRichEdit_SetSel($hRichEdit, 0,-1) ;text markieren
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    ;==========Daten rein laden

    [/autoit] [autoit][/autoit] [autoit]

    prufung(0)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func about()
    MsgBox(64,"Über " & $titel,"Autor:"&@TAB&"Tim Erler"&@CRLF&"Erstellt:"&@TAB&"11.03.2015"&@CRLF&"Version:"&@TAB&$version&@CRLF&@CRLF&"Info:"&@CRLF&$titel&" bietet die Möglichkeit die SQL Syntax farblich hervorzuheben um Code komfortabler zu schreiben und Fehler schneller zu erkennen.");

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
    local $iWidth = _WinAPI_LoWord($lParam)
    local $iHeight = _WinAPI_HiWord($lParam)
    if WinGetState($titel) = 15 then _WinAPI_MoveWindow($hRichEdit, 2, 2, $iWidth-4,$iHeight - 4)
    Return 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func save()
    $path = FileSaveDialog("Speicherort wählen",@DesktopDir,"SQL Script (*.sql)")
    if @error then
    Else
    if (FileWrite($path&".sql",_GUICtrlRichEdit_GetText($hRichEdit)) == 0) then
    MsgBox(16,"Fehler","Es ist ein Fehler beim Speichern der Datei aufgetreten!")
    Else
    MsgBox(64,"Speichern","SQL-Datei wurde erfolgreich gespeichert.")
    Endif
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func open()
    $path = FileOpenDialog("Datei öffnen",@DesktopDir,"SQL Script (*.sql)|Text Datei (*.txt)")
    if @error then
    Else
    $inhalt = FileRead($path)
    if @error then
    MsgBox(16,"Fehler","Es ist ein Fehler beim Speichern der Datei aufgetreten!")
    Else
    dataopen()
    Endif
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func showsyn()

    [/autoit] [autoit][/autoit] [autoit]

    Local $completearray[28][10]

    [/autoit] [autoit][/autoit] [autoit]

    for $i1 = 0 to UBound($syn1)-1
    $completearray[$i1][0] = $syn1[$i1]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    for $i1 = 0 to UBound($syn2)-1
    $completearray[$i1][1] = $syn2[$i1]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    for $i1 = 0 to UBound($syn3)-1
    $completearray[$i1][2] = $syn3[$i1]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    for $i1 = 0 to UBound($syn4)-1
    $completearray[$i1][3] = $syn4[$i1]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($aArr,"Schlüsselwörter",Default,32,Default,$Inisectionnames[1]&"|"&$Inisectionnames[2]&"|"&$Inisectionnames[3]&"|"&$Inisectionnames[4])

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]
  • Gute Frage, da verträgt sich was intern nicht...
    Was genau müsste ich aber noch herausfinden, wirst aber wahrscheinlich
    dazu erst am Sonntag oder Montag eine Antwort bekommen.

    Die _ArrayDisplay() Funktion ist relativ lang. Und dein Skript ist ja auch nicht gerade kurz. ^^

  • Hab's tatsächlich schon gefunden, deine WM_SIZE() Funktion macht Probleme.
    Normalerweise sollte man die Konstante $GUI_RUNDEFMSG zurückgeben.
    Sonst kann da schnell was durcheinander kommen. ;)

    [autoit]

    func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
    local $iWidth = _WinAPI_LoWord($lParam)
    local $iHeight = _WinAPI_HiWord($lParam)
    if WinGetState($titel) = 15 then _WinAPI_MoveWindow($hRichEdit, 2, 2, $iWidth-4,$iHeight - 4)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Kleiner Tipp noch, statt $title verwende doch lieber das Handle. Entweder die globale Variable $hMainGUI
    die du für deine GUI definiert hast oder direkt der Parameter $hWnd. Ist sicherer, wenn ein zweites Fenster mit
    gleichen Titel auftaucht gibt's wieder Probleme.

  • Einmal aus der Doku zitiert: (Quelle: http://translation.autoit.de/onlinehilfe/fu…RegisterMsg.htm)

    Zitat

    Standardmäßig wird nach Beendigung der Benutzerfunktion der AutoIt-interne Message-Handler ausgeführt.
    Dies geschieht nicht, wenn man einen Wert mit Return zurückgibt (Siehe WM_COMMAND im Beispiel) oder wenn man das Schlüsselwort 'Return' ohne irgendeinen Wert benutzt.
    Bei Nutzung von 'Return' ohne irgendeinen Rückgabewert wird der AutoIt-interne Message-Handler (wenn denn einer für diese Nachricht existiert) NICHT ausgeführt!

    !!! Wenn man möchte, dass AutoIt seinen internen Handler für eine Nachricht ausführt, lässt man die Variable $GUI_RUNDEFMSG (in GUIConstantsEx.au3) von der Funktion zurückgeben (siehe ebenso in den Beispielen) !!!
    (Zum Beispiel dann, wenn man vor Beendigung aus der Benutzerfunktion zurückkehren will und trotzdem den AutoIt-internen Message-Handler ausführen möchte)

    AutoIt verarbeitet Messages intern. Ich könnte dir zwar jetzt erklären was da genau vor sich geht und wie man das manuell macht, aber da habe ich gerade nicht die Nerven für, vielleicht morgen.