Array macht was es will?

  • In der MSG Box liest er das Array richtig aus.
    GUICtrlCreateTreeViewitem macht er dann aber nicht richtig.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("BYTEWORKER Install Menu", 800, 600)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")

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

    ; ################## Globale Gruppe der Kategoreien #################
    ; Beim hinzufuegen neuer Gruppen den Index von $arKategorie anpassen!

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

    Dim $arKategorie[7][2]

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

    ; VariablenNamen der Controls
    $arKategorie[0][0] = "$systemitem"
    $arKategorie[1][0] = "$burningitem"
    $arKategorie[2][0] = "$internetitem"
    $arKategorie[3][0] = "$multimediaitem"
    $arKategorie[4][0] = "$pdfitem"
    $arKategorie[5][0] = "$officeitem"
    $arKategorie[6][0] = "$messageitem"

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

    ; Name und Beschreibung der Kategorie
    $arKategorie[0][1] = "System"
    $arKategorie[1][1] = "Burning"
    $arKategorie[2][1] = "Internet"
    $arKategorie[3][1] = "Multimedia"
    $arKategorie[4][1] = "PDF"
    $arKategorie[5][1] = "Office"
    $arKategorie[6][1] = "Messaging"

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

    ; ##################### SystemItem Eintraege ##################

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

    Dim $arSystemItem[4][5]

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

    ; VariablenNamen der Controls
    $arSystemItem [0] [0] = "$defrag"
    $arSystemItem [1] [0] = "$bwprofile"
    $arSystemItem [2] [0] = "$bwadminprofile"
    $arSystemItem [3] [0] = "$winrar"

    ; Name und Beschreibung der Kategorie
    $arSystemItem [0] [1] = "OO Defrag 10"
    $arSystemItem [1] [1] = "BW User Profile"
    $arSystemItem [2] [1] = "BW Admin Profile"
    $arSystemItem [3] [1] = "Win Rar 3.7X"

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

    ; Kategorie der Programme ( Variablen Namen von arKategorie)
    $arSystemItem [0] [2] = $arKategorie[0][0]
    $arSystemItem [1] [2] = $arKategorie[0][0]
    $arSystemItem [2] [2] = $arKategorie[0][0]
    $arSystemItem [3] [2] = $arKategorie[0][0]

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

    ; Wert gesetzt oder nicht
    $arSystemItem [0] [3] = 0
    $arSystemItem [1] [3] = 0
    $arSystemItem [2] [3] = 0
    $arSystemItem [3] [3] = 0

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

    ; Farbe bei Radio Auswahl
    $arSystemItem [0] [4] = 0
    $arSystemItem [1] [4] = 0
    $arSystemItem [2] [4] = 0
    $arSystemItem [3] [4] = 0

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

    _ArrayDisplay($arSystemItem)

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

    $treeview = GUICtrlCreateTreeView(100, 50, 400, 450, BitOr($TVS_CHECKBOXES, $TVS_HASLINES, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)

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

    For $i = 0 To UBound($arKategorie,1) -1
    $arKategorie[$i][0] = GUICtrlCreateTreeViewitem( $arKategorie[$i][1] , $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    Next


    ;MsgBox(0 , "test" , UBound($arSystemItem,1) -1 )
    For $i = 0 To UBound($arSystemItem,1) -1
    ;$arSystemItem[$i][0] = GUICtrlCreateTreeViewitem( $arSystemItem[$i][1] , $arSystemItem[$i][2])
    ;GUICtrlSetColor(-1, 0x0000C0)
    MsgBox(0 , "test" , $arSystemItem[$i][0] & $arSystemItem[$i][1] & $arSystemItem[$i][2])
    Next

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


    ; Das alle Kategorien aufgeklappt sind
    GUICtrlSetState($arKategorie[0][0], BitOr($GUI_EXPAND,$GUI_DEFBUTTON,$GUI_DISABLE))

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

    ;GUISetState () ; Setzt den Status der GUI
    GUISetState(@SW_SHOW)

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

    While 1

    Sleep(10)

    WEnd

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

    Func AForm1Close()
    ;MsgBox( 4 , "Beenden", "Möchten Sie das Aufraeumen wirklich abbrechen?")
    ;If True Then
    Exit
    ;EndIf

    EndFunc

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

    ;_ArrayDisplay( $arKategorie )

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

    ;MsgBox(0, "Test", UBound($arKategorie))

    [/autoit]

    Edit BUgFix: Spoiler gesetzt

    Einmal editiert, zuletzt von cat1510 (1. November 2007 um 20:39)

  • Der soll

    [autoit]


    $arSystemItem[$i][0] = GUICtrlCreateTreeViewitem( $arSystemItem[$i][1] , $arSystemItem[$i][2])

    [/autoit]

    ausfuehren und die alle an die Kategorien anhaengen...

    Kommentiere die Zeile mal aus und schau Dir an, wie sich die msgbos veraendert... Komisch oder?


    CAT

    Einmal editiert, zuletzt von cat1510 (1. November 2007 um 20:54)

  • Variablennamen im Array... Du machst z.B. Das:

    [autoit]

    $arKategorie[0][0] = "$systemitem"

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

    ; $arKategorie[0][0] ist String mit Inhalt $systemitem

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

    $arSystemItem[0][2] = $arKategorie[0][0]

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

    ; $arSystemItem[0][2 ist String mit Inhalt $systemitem

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

    ...
    $arKategorie[$i][0] = GUICtrlCreateTreeViewitem( $arKategorie[$i][1] , $treeview)
    ...

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

    ; $arKategorie[0][0] ist Zeiger auf TreeViewItem (NICHT $systemitem)
    ;; $arSystemItem[0][2 ist immer noch String mit Inhalt $systemitem
    ; Da kann also nichts dem Treeview hinzugefügt werden mit
    $arSystemItem[$i][0] = GUICtrlCreateTreeViewitem( $arSystemItem[$i][1] , $arSystemItem[$i][2])

    [/autoit]


    So würde es gehen:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstants.au3>


    Opt("GUIOnEventMode", 1)

    $Form1 = GUICreate("BYTEWORKER Install Menu", 800, 600)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")

    ; ################## Globale Gruppe der Kategoreien #################
    ; Beim hinzufuegen neuer Gruppen den Index von $arKategorie anpassen!

    Dim $arKategorie[7][2]

    ; VariablenNamen der Controls
    $arKategorie[0][0] = "$systemitem"
    $arKategorie[1][0] = "$burningitem"
    $arKategorie[2][0] = "$internetitem"
    $arKategorie[3][0] = "$multimediaitem"
    $arKategorie[4][0] = "$pdfitem"
    $arKategorie[5][0] = "$officeitem"
    $arKategorie[6][0] = "$messageitem"


    ; Name und Beschreibung der Kategorie
    $arKategorie[0][1] = "System"
    $arKategorie[1][1] = "Burning"
    $arKategorie[2][1] = "Internet"
    $arKategorie[3][1] = "Multimedia"
    $arKategorie[4][1] = "PDF"
    $arKategorie[5][1] = "Office"
    $arKategorie[6][1] = "Messaging"

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

    $treeview = GUICtrlCreateTreeView(100, 50, 400, 450, BitOr($TVS_CHECKBOXES, $TVS_HASLINES, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)


    For $i = 0 To UBound($arKategorie,1) -1
    $arKategorie[$i][0] = GUICtrlCreateTreeViewitem( $arKategorie[$i][1] , $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    Next


    ; ##################### SystemItem Eintraege ##################

    Dim $arSystemItem[4][5]

    ; VariablenNamen der Controls
    $arSystemItem [0] [0] = "$defrag"
    $arSystemItem [1] [0] = "$bwprofile"
    $arSystemItem [2] [0] = "$bwadminprofile"
    $arSystemItem [3] [0] = "$winrar"

    ; Name und Beschreibung der Kategorie
    $arSystemItem [0] [1] = "OO Defrag 10"
    $arSystemItem [1] [1] = "BW User Profile"
    $arSystemItem [2] [1] = "BW Admin Profile"
    $arSystemItem [3] [1] = "Win Rar 3.7X"

    ; Kategorie der Programme ( Variablen Namen von arKategorie)
    $arSystemItem [0] [2] = $arKategorie[0][0]
    $arSystemItem [1] [2] = $arKategorie[0][0]
    $arSystemItem [2] [2] = $arKategorie[0][0]
    $arSystemItem [3] [2] = $arKategorie[0][0]

    ; Wert gesetzt oder nicht
    $arSystemItem [0] [3] = 0
    $arSystemItem [1] [3] = 0
    $arSystemItem [2] [3] = 0
    $arSystemItem [3] [3] = 0

    ; Farbe bei Radio Auswahl
    $arSystemItem [0] [4] = 0
    $arSystemItem [1] [4] = 0
    $arSystemItem [2] [4] = 0
    $arSystemItem [3] [4] = 0


    _ArrayDisplay($arSystemItem)

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



    ;MsgBox(0 , "test" , UBound($arSystemItem,1) -1 )
    For $i = 0 To UBound($arSystemItem,1) -1
    $arSystemItem[$i][0] = GUICtrlCreateTreeViewitem( $arSystemItem[$i][1] , $arSystemItem[$i][2])
    GUICtrlSetColor(-1, 0x0000C0)
    ;MsgBox(0 , "test" , $arSystemItem[$i][0] & $arSystemItem[$i][1] & $arSystemItem[$i][2])
    Next


    ; Das alle Kategorien aufgeklappt sind
    GUICtrlSetState($arKategorie[0][0], BitOr($GUI_EXPAND,$GUI_DEFBUTTON,$GUI_DISABLE))

    ;GUISetState () ; Setzt den Status der GUI
    GUISetState(@SW_SHOW)


    While 1

    Sleep(10)

    WEnd

    Func AForm1Close()
    ;MsgBox( 4 , "Beenden", "Möchten Sie das Aufraeumen wirklich abbrechen?")
    ;If True Then
    Exit
    ;EndIf

    EndFunc


    ;_ArrayDisplay( $arKategorie )

    ;MsgBox(0, "Test", UBound($arKategorie))

    [/autoit]