Hi,
in linker TV Item anklicken und dann den Button unten
AutoIt
#include <Array.au3>
#include <GuiTreeView.au3>
#include <GuiConstants.au3>
; Dieses Array ist ein Beispiel dafür, wie die Daten aus den FahrtenbuchDateien zurück gegeben werden.
Global $a_FahrtenbuchDaten[13][3] = [[12], ["2012", "November", "01 (Montag)"], ["2012", "November", "02 (Dienstag)"], ["2012", "Dezember", "03 (Mittwoch)"], ["2013", "Oktober", "04 (Donnerstag)"], _
["2013", "November", "05 (Freitag)"], ["2013", "Dezember", "06 (Samstag)"], ["2014", "November", "07 (Sonntag)"], ["2014", "November", "08 (Montag)"], _
["2014", "November", "09 (Dienstag)"], ["2015", "Juni", "10 (Mittwoch)"], ["2015", "August", "11 (Donnerstag)"], ["2015", "Oktober", "12 (Freitag)"]]
; Dieses Array ist ein Beispiel dafür, wie FileListToArray() in der Funktion "TreeView_Fahrtenbuch()" die Daten zurück gibt.
Global $a_Fahrtenbuch[5] = [4, "Fahrtenbuch 2012.dat", "Fahrtenbuch 2013.dat", "Fahrtenbuch 2014.dat", "Fahrtenbuch 2015.dat"]
Global $hGui, $hSoSollsWerden, $hTreeView
Func _SoSollsSein()
$hSoSollsWerden = GUICtrlCreateTreeView(250, 50, 200, 500)
GUICtrlSetBkColor(-1, 0xFFFBBB)
GUICtrlSetFont(-1, 12)
Local $1 = _GUICtrlTreeView_Add($hSoSollsWerden, 0, "2012")
Local $2 = _GUICtrlTreeView_Add($hSoSollsWerden, 0, "2013")
Local $3 = _GUICtrlTreeView_Add($hSoSollsWerden, 0, "2014")
Local $4 = _GUICtrlTreeView_Add($hSoSollsWerden, 0, "2015")
Local $1_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $1, "November")
Local $1_2 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $1, "Dezember")
Local $2_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2, "Oktober")
Local $2_2 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2, "November")
Local $2_3 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2, "Dezember")
Local $3_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $3, "November")
Local $4_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4, "Juni")
Local $4_2 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4, "August")
Local $4_3 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4, "Oktober")
Local $1_1_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $1_1, "01 (Montag)")
Local $1_1_2 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $1_1, "02 (Dienstag)")
Local $1_2_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $1_2, "03 (Mittwoch)")
Local $2_1_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2_1, "04 (Donnerstag)")
Local $2_2_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2_2, "05 (Freitag)")
Local $2_3_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $2_3, "06 (Samstag)")
Local $3_1_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $3_1, "07 (Sonntag)")
Local $3_1_2 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $3_1, "08 (Montag)")
Local $3_1_3 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $3_1, "09 (Dienstag)")
Local $4_1_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4_1, "10 (Mittwoch)")
Local $4_2_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4_2, "11 (Donnerstag)")
Local $4_3_1 = _GUICtrlTreeView_AddChild($hSoSollsWerden, $4_3, "12 (Freitag)")
_GUICtrlTreeView_Expand($hSoSollsWerden)
EndFunc ;==>_SoSollsSein
$hGui = GUICreate("TestGUI", 470, 660)
GUISetBkColor(0xFFFBBB)
GUICtrlCreateLabel("So soll es aussehen...", 250, 20, 200, 30, $SS_CENTER)
GUICtrlSetFont(-1, 12, 800, 4)
GUICtrlCreateLabel("So ist es aktuell...", 20, 20, 200, 30, $SS_CENTER)
GUICtrlSetBkColor(-1, 0xBBBBBB)
GUICtrlSetFont(-1, 12, 800, 4)
_SoSollsSein()
$hTreeView = GUICtrlCreateTreeView(20, 50, 200, 500)
GUICtrlSetBkColor(-1, 0xBBBBBB)
GUICtrlSetFont(-1, 12)
_TreeView_Fahrtenbuch() ; Diese Funktion soll mir das TreeView mit den Daten aus dem Array "$a_FahrtenbuchDaten" befüllen.
$button = GUICtrlCreateButton("geklicktes Item", 100, 630)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $Gui_Event_Close
Exit
Case $button
$selectID = _GUICtrlTreeView_GetSelection($hTreeView)
$tree_text = _GUICtrlTreeView_GetTree($hTreeView, $selectID)
$file = StringReplace(StringLeft($tree_text, StringInStr($tree_text, " ") - 1), "|", "_") ;nur , wenn tag angeklickt
If $file <> "" Then $file &= ".DAT"
MsgBox(0, 0, "itemindex: " & $selectID & @CRLF & "Tree: " & $tree_text & @CRLF & "File: " & $file)
EndSwitch
WEnd
#EndRegion #### ; Do not touch anything below this line ;-)))
Func _TreeView_Fahrtenbuch() ; <---------------- Um diese Funktion dreht sich das Ganze.
_GUICtrlTreeView_DeleteAll($hTreeView)
Local $Anzahl_Jahre = $a_Fahrtenbuch ; <---- Diese beiden Arrays werden im eigentlichen Script zwar anders deklariert,
Local $a_FB_DATA = $a_FahrtenbuchDaten ; <-- aber im Endeffekt sind die Inhalte der Daten absolut identisch.
Local $Index_Total = $a_FB_DATA[0][0], $Monat = "", $MonatCheck = "", $Jahr = ""
Dim $hItem_Jahr[$Anzahl_Jahre[0] + 1], $hItem_Monat[1], $hItem_Tag[1]
For $i = 1 To $Anzahl_Jahre[0]
$Jahr = StringTrimRight(StringRight($Anzahl_Jahre[$i], 8), 4)
$hItem_Jahr[$i] = _GUICtrlTreeView_Add($hTreeView, 0, $Jahr)
GUICtrlSetFont(-1, 12, 800)
$MonatCheck = ""
$LastMonatControl = -1
For $k = 1 To $Index_Total
If $a_FB_DATA[$k][0] = $Jahr Then
$Monat = $a_FB_DATA[$k][1]
If $Monat <> $MonatCheck Then
$LastMonatControl = _GUICtrlTreeView_AddChild($hTreeView, $hItem_Jahr[$i], $Monat)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $LastMonatControl = ' & $LastMonatControl & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
EndIf
_GUICtrlTreeView_AddChild($hTreeView, $LastMonatControl, $a_FB_DATA[$k][2])
$MonatCheck = $Monat
EndIf
Next
Next
_GUICtrlTreeView_Expand($hTreeView)
EndFunc ;==>_TreeView_Fahrtenbuch
==>_TreeView_Fahrtenbuch
Alles anzeigen
//EDIT
gibt den Dateinamen zurück, sobald ein Tag selektiert wurde