GuiCtrlSetImage fehler

  • Hey all,

    ich benutze zusätzlich das include TreeViewTab.au3
    im nachfolgenden Script hab ich in der Zeile 20 bestimmt, dass ein Icon einem TreeViewTabItem zugeordnet werden soll. Aber es werden ALLE TVTItems damit beflackt.
    Ich weiss nicht weshalb, kann mir wer helfen?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <GUIButton.au3>
    #include "TreeViewTab.au3"

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

    Global $name_der_gui = "Test Interface"
    Global $logo_0 = "pfad 1" ; ist hier jetzt nicht wichtig
    Global $logo_1 = "pfad 2" ; ist hier jetzt nicht wichtig
    Global $logo_2 = "pfad 3" ; ist hier jetzt nicht wichtig

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

    Global $h_MainGUI = GUICreate($name_der_gui,800,600)
    GUISetFont(10)
    Global $iTreeViewTab = _GUICtrlTreeViewTab_CreateTab(10, 10, 200, 350, -1, BitOR($WS_EX_STATICEDGE, $WS_EX_CLIENTEDGE))

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

    #region Teamspeak
    $iTreeViewTabItem__TS_3 = _GUICtrlTreeViewTab_CreateTabItem ("Teamspeak 3", $iTreeViewTab)
    GUICtrlSetImage(-1, "shell32.dll", 44); <-------------------------------------------------------------------- hier haut es einfach nicht hin...
    $iHeader_Icon = GUICtrlCreateIcon($logo_0, -1, 220, 10, 32, 32) ; egal wie ich es versuche, es wird das Icon für alle TabItems gesetzt...
    $iHeader_Label = GUICtrlCreateLabel("Teamspeak 3", 260, 10, 300, 40) ; Warum????
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    _GUICtrlTreeViewTab_CreateTabItem("",$iTreeViewTab) ; Trenner
    #endregion

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

    #region CoD 4
    $iTreeViewTabItem_CoD_4 = _GUICtrlTreeViewTab_CreateTabItem ("Modern Warfare", $iTreeViewTab)
    $iHeader_Icon = GUICtrlCreateIcon($logo_1, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 1", 260, 10, 300, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont(-1, 20, 800, 0, "Georgia")

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

    #region CoD 4 Server 1
    $iTreeViewTabItem_CoD_4_Server1 = _GUICtrlTreeViewTab_CreateTabItem ("Hardcore", $iTreeViewTab, $iTreeViewTabItem_CoD_4)
    $iHeader_Icon = GUICtrlCreateIcon($logo_1, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 1", 260, 10, 530, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    $iHeader_Label = GUICtrlCreateLabel("Hardcore", 540, 10, 260, 40)
    GUICtrlSetColor(-1, 0x0B610B)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    #endregion

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

    #region CoD 4 Server 2
    $iTreeViewTabItem_CoD_4_Server2 = _GUICtrlTreeViewTab_CreateTabItem ("Warserver", $iTreeViewTab, $iTreeViewTabItem_CoD_4)
    $iHeader_Icon = GUICtrlCreateIcon($logo_1, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 1", 260, 10, 530, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    $iHeader_Label = GUICtrlCreateLabel("Warserver", 540, 10, 260, 40)
    GUICtrlSetColor(-1, 0x0B610B)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    #endregion

    _GUICtrlTreeViewTab_CreateTabItem("",$iTreeViewTab) ; Trenner
    #endregion

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

    #region CoD 6
    $iTreeViewTabItem_CoD_6 = _GUICtrlTreeViewTab_CreateTabItem ("Modern Warfare 2", $iTreeViewTab)
    $iHeader_Icon = GUICtrlCreateIcon($logo_2, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 2", 260, 10, 300, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")

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

    #region CoD 6 Server 1
    $iTreeViewTabItem_CoD_6_Server1 = _GUICtrlTreeViewTab_CreateTabItem ("Hardcore", $iTreeViewTab, $iTreeViewTabItem_CoD_6)
    $iHeader_Icon = GUICtrlCreateIcon($logo_2, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 2", 260, 10, 530, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    $iHeader_Label = GUICtrlCreateLabel("Hardcore", 540, 10, 260, 40)
    GUICtrlSetColor(-1, 0x0B610B)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    #endregion

    #region CoD 6 Server 2
    $iTreeViewTabItem_CoD_6_Server2 = _GUICtrlTreeViewTab_CreateTabItem ("Gun & Fun", $iTreeViewTab, $iTreeViewTabItem_CoD_6)
    $iHeader_Icon = GUICtrlCreateIcon($logo_2, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 2", 260, 10, 530, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    $iHeader_Label = GUICtrlCreateLabel("Gun 4 Fun", 540, 10, 260, 40)
    GUICtrlSetColor(-1, 0x0B610B)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    #endregion

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

    #region CoD 6 Server 3
    $iTreeViewTabItem_CoD_6_Server3 = _GUICtrlTreeViewTab_CreateTabItem ("Zombies", $iTreeViewTab, $iTreeViewTabItem_CoD_6)
    $iHeader_Icon = GUICtrlCreateIcon($logo_2, -1, 220, 10, 32, 32)
    $iHeader_Label = GUICtrlCreateLabel("Modern Warfare 2", 260, 10, 260, 40)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    $iHeader_Label = GUICtrlCreateLabel("Zombies", 540, 10, 260, 40)
    GUICtrlSetColor(-1, 0x0B610B)
    GUICtrlSetFont (-1, 20, 800, 0, "Georgia")
    #endregion

    _GUICtrlTreeViewTab_CreateTabItem("",$iTreeViewTab)
    #endregion

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

    _GUICtrlTreeViewTab_CloseTab($iTreeViewTab)
    GUICtrlCreateLabel("", 220, 50, 560, 2, $SS_SUNKEN)
    GUICtrlCreateLabel("", 10, 370, 770, 2, $SS_SUNKEN)
    GUICtrlCreateGroup("", 220, 55, 560, 305)

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

    GUICtrlSetState($iTreeViewTabItem_CoD_6, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))
    GUICtrlSetState($iTreeViewTabItem_CoD_4, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))
    GUICtrlSetState($iTreeViewTabItem__TS_3, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))

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

    GUISetState(@SW_SHOW, $h_MainGUI)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd

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

    _GUICtrlTreeViewTab_DestroyTab($iTreeViewTab)

    [/autoit]

    Ziel ist es, einigen items andere Icons zuzuweisen und einigen überhaupt keine...

    mfG Lottich

  • Hallo Lottich,

    in solchen Fällen wendet man sich an den Autor der benutzten UDF. Ich erinnere mich aber dunkel in einem Thema von Oscar gelesen zu haben, das dies das Standard-Verhalten eines Treeviews ist. Sprich das zuerst gesezte Icon wird standardmässig für alle übernommen. Du solltest also einmal austesten als erstes ein "Leeres" Icon zuzuweosen Da dies standardmässig übernommen wird (falls mich meine Erinnerung nicht täuscht) bekommst du nur die danach für die Ausnahmen gesetzten Icons zu sehen,

    mfg autoBert

  • Danke für den Tip autoBert. Es hat so funktioniert:

    Das erste erstellte Image gilt für das gesamte TreeViewTab, danach hab ich separat für jeden anderen Eintrag ein anderes Image festgelegt. Da hätte ich selber drauf kommen müssen. ;( *schäm*
    Was jedoch noch nicht funktioniert: Es sollen einige Einträge kein Icon/image erhalten. Wenn ich nun aber einen neuen Eintrag anlege, bekommt der automatisch das erste Image verpasst.
    Wenn ich dann

    [autoit]

    GUICtrlSetImage(-1, "shell32.dll", 6000) ; <--- oder eine andere Zahl, die kein Icon/Image enthält

    [/autoit]

    als erstes Image für den gesamten TVT benutze, dann wird automatisch das nächst erstellte Icon/image als standard verwendet :(

    Gibt es irgendwo ein BlankoImage in der genannten DLL oder muss ich mir selber nen Blanko anlegen?

    Edit: hab mir ein blanko.ico erstellt, funktioniert wie gedacht xD

  • Ist es möglich für jeden Tab eine andere AutoIt-Datei zu
    laden.


    Ich habe eine Sammlung von Autoit-Programme die ich nicht in Separate GUI´s
    ausgeben will, sondern alle in Einem GUI. Ich will mir so was Ähnliches wie MMC
    aufbauen und einzelne Komponente bei Per TreeViewTab laden. Die Programme
    sollen aber auch einzeln aufrufbar sein, um sie einzeln entwickeln zu können.


    Gibt es bereits da schon was Fertiges, bzw. hat einer einen Ansatz wie ich es
    am besten Umsetzen kann?

    Ich administriere die Schulungsrechner in Unserer Firma. Da hab ich schon so
    was Ähnliches für die Softwareverteilung programmiert. Allerdings alles in nur
    einem Autoit-Datei, was die Programmierung wesendlich erschwert. Wenn ich es
    jetzt um Weitere Tabs erweitern will, wird das ganze unübersichtlich.


    Ich bedanke mich im Voraus.