GUISetOnEvent / Buttons funktionieren nicht! / On click change

  • Hallo,

    habe eine kleine GUI wo alle installierten Schriftarten aufgelistet werden. Nun möchte ich durch anklicken einer Schriftart in diese Schriftart ändern. Des funzt noch nicht. Und die Buttons "Up" und "Dwn" gehen auch nicht!! Diese sollen das Alphabet bzw. den Buchstaben ändern!

    Wer hatn Tipp oder ne Lösung für mich?? Danke!

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <ListviewConstants.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <RegFunc.au3>
    #include <UpDownConstants.au3>
    #include <EditConstants.au3>
    #include <GDIPlus.au3>
    Opt("GUIOnEventMode", 1)

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

    ;Data
    $dString = 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z'
    $aString = StringSplit($dString, ',')
    Local $data[2][$aString[0] + 1]
    For $i = 1 to $aString[0]
    $data[0][$i] = $aString[$i]
    $data[1][$i] = $i
    Next
    $data[0][0] = (UBound($data, 2) - 1)
    ;_ArrayDisplay($data, -1, -1, 1)
    $cDataCount = 1
    ;Schriftarten aus Windows Fonts Ordner holen
    $FontList = _FileListToArray(@WindowsDir & '\Fonts', '*.ttf', 1)
    ;Fehlerabfrage
    If @error = 1 Then
    MsgBox(0, "", "No Folders Found.")
    Exit
    EndIf
    If @error = 4 Then
    MsgBox(0, "", "No Files Found.")
    Exit
    EndIf
    ;
    $var = _GetRegValues('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts')
    ;Deklarationen
    Dim $aItems[($FontList[0] + 1)]
    $x = 1
    ;Arrays anzeigen
    ;~ _ArrayDisplay($FontList, "$FileList")
    ;~ _ArrayDisplay($var)
    ;GUI erstellen
    $msg = GUICreate("Installierte Schriftarten", 400, 500)
    $listview = GUICtrlCreateListView("Nr.|Datei|Name", 10, 10, 380, 150, $LVS_SINGLESEL)
    $button = GUICtrlCreateButton("OK", 20, 170, 70, 20)
    $gWin = GUICtrlCreateGraphic(20, 200, 100, 100)
    GUICtrlSetBkColor($gWin, 0xffffff)
    GUICtrlSetColor($gWin, 0)
    $iLetter = GUICtrlCreateInput ("A", 100, 170, 20, 20, $ES_CENTER)
    GUICtrlSetLimit($iLetter, 1)
    GUICtrlSetLimit($listview, 1)
    $bUp = GUICtrlCreateButton('Up', 121, 200, 24, 50)
    $bDown = GUICtrlCreateButton('Dwn', 121, 250, 24, 50)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUICtrlSetOnEvent($button, "button")
    GUISetOnEvent($bUp, "UP")
    GUISetOnEvent($bDown, "DOWN")
    ;GUI Liste schreiben
    For $a = 1 To UBound($var)
    If StringRight($var[$a - 1][2], 3) = 'ttf' Then
    $aItems[$x] = GUICtrlCreateListViewItem($x & '|' & $var[$a - 1][2] & '|' & $var[$a - 1][0], $listview)
    GUICtrlSetOnEvent($aItems[$x], "HandleClicks")
    $x = $x + 1
    EndIf
    Next
    drawtype()
    ;GUI loop
    While 1
    $rAktList = GUICtrlRead($listview)
    WEnd
    ;Funktionen
    ;SpecialEvents
    Func SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    EndFunc
    ;HandleClicks
    Func HandleClicks()
    $aktSel = GUICtrlRead(GUICtrlRead($listview))
    $aList = StringSplit($aktSel,'|')
    $sTrim = StringTrimRight($aList[3], 11)
    EndFunc
    ;button()
    Func button()
    $rInput = GUICtrlRead($iLetter)
    MsgBox(0, 'Schriftart', GUICtrlRead(GUICtrlRead($listview)), 2)
    drawtype()
    EndFunc
    ;UP()
    Func UP()
    If $cDataCount < $aString[0] Then
    $cDataCount = $cDataCount + 1
    EndIf
    GUICtrlSetData($iLetter, $aString[$cDataCount])
    drawtype()
    EndFunc
    ;DOWN()
    Func DOWN()
    If $cDataCount >= 2 Then
    $cDataCount = $cDataCount - 1
    EndIf
    GUICtrlSetData($iLetter, $aString[$cDataCount])
    drawtype()
    EndFunc
    ;drawtype()
    Func drawtype()
    $rInput = GUICtrlRead($iLetter)
    ; Draw a string
    _GDIPlus_Startup()
    GUICtrlSetColor($gWin, 0)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($msg)
    _GDIPlus_GraphicsDrawString($hGraphic, $rInput, 40, 40, 'Arial', 20)
    EndFunc
    ;Ende
    Exit

    [/autoit]