Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
Author: Karill Endusa
Script Function:
Kundendatenbank für kleine bis mittelgroße Geschäfte.
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit];[includes]
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <SQLite.au3>
;----------------------------------------Variables-------------------------Start
;=> Globale Deklarationen verschoben in die For Schleifen der entsprechenden Abschnitte (ListView, LVMenu)
;----------------------------------------Variables---------------------------End
;----------------------------------------GUI-------------------------------Start
$GUI_mainWindow = GUICreate("Kundendatenbank", 1000, 750, -1, -1)
;------Ini-------Start
If FileExists(@ScriptDir&"\kudaba\") = 0 Then
DirCreate(@ScriptDir&"\kudaba\")
EndIf
If FileExists(@ScriptDir&"\kudaba\structure.ini") = 0 Then
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnernamen", "Ordner1", "Ordner1")
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnernamen", "Ordner2", "Ordner2")
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnernamen", "Ordner3", "Ordner3")
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnerorder", "Ordner1", "1")
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnerorder", "Ordner2", "2")
IniWrite(@ScriptDir&"\kudaba\structure.ini", "Ordnerorder", "Ordner3", "3")
EndIf
;------Ini---------End
;------Menu------Start
$M_datei = GUICtrlCreateMenu("Datei")
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
;------Menu--------End
;-----ListView---Start
GUICtrlCreateGroup("Kunden", 5, 0, 160, 330)
$TreeView = GUICtrlCreateTreeView(10, 20, 150, 300, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS,$WS_GROUP,$WS_TABSTOP,$WS_HSCROLL,$WS_VSCROLL,$WS_BORDER))
Global $IRS_structure_ONamen = IniReadSection(@ScriptDir&"\kudaba\structure.ini", "Ordnernamen")
Global $TV_O[$IRS_structure_ONamen[0][0]]
Global $CM_TV_O[$IRS_structure_ONamen[0][0]]
Global $CM_TV_O_rename[$IRS_structure_ONamen[0][0]]
For $i = 0 To $IRS_structure_ONamen[0][0]-1
$TV_O[$i] = GUICtrlCreateTreeViewItem($IRS_structure_ONamen[$i+1][1], $TreeView)
$CM_TV_O[$i] = GUICtrlCreateContextMenu($TV_O[$i])
$CM_TV_O_rename[$i] = GUICtrlCreateMenuItem("Umbenennen", $CM_TV_O[$i])
If FileExists(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini") = 0 Then
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "Name", "Mustermann")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "Forename", "Max")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "StreetAndNumber", "Weißwurststraße 1337")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "PLZ", "99999")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "Ort", "Musterhausen")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "Tel", "12345/6788")
IniWrite(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde1", "Fax", "12345/6789")
EndIf
Global $IRS_KundenO = IniReadSectionNames(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini")
Global $TV_K[$IRS_structure_ONamen[0][0]][$IRS_KundenO[0]]
Global $CM_TV_K[$IRS_structure_ONamen[0][0]][$IRS_KundenO[0]]
Global $CM_TV_K_details[$IRS_structure_ONamen[0][0]][$IRS_KundenO[0]]
For $x = 0 To $IRS_KundenO[0]-1
IniReadSection(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde"&$x+1)
$name = IniRead(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde"&$x+1, "Name", "not found")
$forename = IniRead(@ScriptDir&"\kudaba\Ordner"&$i+1&".ini", "Kunde"&$x+1, "Forename", "not found")
$TV_K[$i][$x] = GUICtrlCreateTreeViewItem($name&", "&$forename, $TV_O[$i])
;-----LVMenu-----Start
$CM_TV_K[$i][$x] = GUICtrlCreateContextMenu($TV_K[$i][$x])
$CM_TV_K_details[$i][$x] = GUICtrlCreateMenuItem("Detailansicht", $CM_TV_K[$i][$x])
;-----LVMenu-------End
Next
Next
;-----ListView-----End
;-----LVMenu-----Start
;=> Verschoben in die 2. For Schleife des ListView Bereichs
;-----LVMenu-------End
;-----StatusBar--Start
$StatusBar1 = _GUICtrlStatusBar_Create($GUI_mainWindow)
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, "Kundendatenbank Version 1.0.0 (by Martin Bucher)")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)
;-----StatusBar----End
GUISetState(@SW_SHOW, $GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit];//TODO
$GUI_detailWindow = GUICreate("Detailansicht", 750, 500, -1, -1)
GUISetState(@SW_HIDE, $GUI_detailWindow)
;----------------------------------------GUI---------------------------------End
;----------------------------------------Script----------------------------Start
While 1 * Sleep(10)
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
If $nMsg[1] = $GUI_mainWindow Then
Exit
ElseIf $nMsg[1] = $GUI_detailWindow Then
GUISetState(@SW_HIDE, $GUI_detailWindow)
EndIf
Case $MI_beenden
Exit
Case $CM_TV_O_rename[0] To $CM_TV_O_rename[2]
MsgBox(0, "", "Case works!");[TODO]
EndSwitch
WEnd
;----------------------------------------Script------------------------------End
;----------------------------------------Functions-------------------------Start
[/autoit] [autoit][/autoit] [autoit];----------------------------------------Functions---------------------------End
[/autoit]Mein Problem is im Switch
im Case $CM_TV_O_rename[0] To $CM_TV_O_rename[2]
also an sich klappt das... nur wenn ich auf alle TreeView Items zwischen denen wo das Menü dazu da is klicke kommt immer die MsgBox und das nervt einfach
Die nachricht soll nur kommen wenn ich auf den menuitem klicke...
so wie es jetz aussieht könnte man auch einfach jeden case einzeln abfragen aber eigentlich siehts auch anders aus:
Case $CM_TV_O_rename[0] To $CM_TV_O_rename[$IRS_structure_ONamen[0][0]-1]
heisst die ausgabe is dynamisch und ich glaube kaum dass ich cases vom switch in ne for schleife packen kann oder?