GUICtrlCreateIcon mit Ini - Problem

  • hey!

    also ich hab ein Script, dass die Dateipfade für die einzelnen Icons aus einer Ini-Datei ausliest und die Icons dann mit GUICtrlCreateIcon in einer for-schleife erstellt.
    allerdings werden bei mir die Icons nicht angezeigt, es bleibt nur eine weiße Fläche wo eigentlich ein Bild sei sollte:P In einem anderen vorläuferprogramm klappt das aber, nur das hier die Pfade im Script manuell in ein Array geschrieben sind.

    Spoiler anzeigen
    [autoit]


    ; Vorläufer:
    $src[0] = "C:\Programme\Internet Explorer\iexplore.exe"
    $src[1] = "C:\Programme\AutoIt3\SciTE\SciTE.exe"
    $src[2] = "C:\WINDOWS\explorer.exe"

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

    ; Neu:
    $src = IniReadSection(@ScriptDir & "\config.ini", "progs")
    _ArrayDelete($src, 0)
    Dim $icons[UBound($src, 1)]

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

    ; die GUI und die Icons:
    $GUI = GUICreate("", @DesktopWidth, 97, -1, 625, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
    GUISetBkColor("0x00BB00", $GUI)
    $left = 32
    For $i = 0 To UBound($icons)-1 Step +1
    ;MsgBox(0, "", $src[$i][0] & @LF & $src[$i][1])
    $icons[$i] = GUICtrlCreateIcon($src[$i][1], $src[$i][0], $left, 24, 32, 32, BitOR($SS_NOTIFY, $WS_GROUP))
    If @error Then MsgBox(0, "", @error)
    $left += 56
    Next
    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    if $msg = $GUI_EVENT_CLOSE then Exit
    Sleep(100)
    WEnd

    [/autoit]

    die ini Datei sieht so aus:

    Spoiler anzeigen
    Code
    [progs]
    -1=C:\Programme\Internet Explorer\iexplore.exe
    -1=C:\Programme\AutoIt3\SciTE\SciTE.exe
    -14=C:\WINDOWS\explorer.exe

    danke schon ma im voraus für die hilfe=)

    greetz syne

    Einmal editiert, zuletzt von syne (9. Juli 2009 um 13:39)

  • Hey,

    hab von deinen Skript leider fast nichts verstanden :wacko:
    Nach deiner Beschreibung hab ich mal was gebastelt und wenn die Datenpfade stimmen (wieso sind das .exe bei dir? ?( ) funktionierts auch.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ; die GUI und die Icons:
    $GUI = GUICreate("", @DesktopWidth, 97, -1, 625)
    GUISetBkColor("0x00BB00", $GUI)
    $left = 32
    $src = IniReadSection(@ScriptDir & "\config.ini", "progs")

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

    For $i = 1 To $src[0][0]
    GUICtrlCreateIcon($src[$i][1], $src[$i][0], $left, 24, 32, 32)
    If @error Then MsgBox(0, "", @error)
    $left += 56
    Next

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_CLOSE
    Exit
    endswitch
    WEnd

    [/autoit]
  • ok thx für die hilfe nuts:)
    habs hingekriegt.. ich glaub es lag dadran, dass der 2. parameter von GUICtrlCreateIcon kein Integer war..:P
    ach so: es sind .exe, weil dann das icon der exe übernommen wird..