sorry für dopo aber damit das keiner übersieht neues Problem:
wenn das erste ListView Item markiert ist und man macht rechtsklick auf nen anderes dann gibt er mit _GUICtrlTreeView_GetSelection trotzdem die ID dessen aus, welches markiert war... wie kann ich machen dass bei rechtsklick auch dieses ListVIew Item direkt markiert wird
Beiträge von Derpy Hooves
-
-
-
Kann mir ma bitte einer sagen warum das so jetz nich klappt? also das is jetz im OnEvent Modus... das $GUI_EVENT_CLOSE klappt soweit auch aber warum klappen die MenuItems nicht? wenn ich das so ausführe kommt dabei keine MsgBox im fRename und fDetails...
Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
[/autoit] [autoit][/autoit] [autoit]
Author: Karill EndusaScript Function:
[/autoit] [autoit][/autoit] [autoit]
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]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit];----------------------------------------Variables-------------------------Start
[/autoit] [autoit][/autoit] [autoit]
;=> Globale Deklarationen verschoben in die For Schleifen der entsprechenden Abschnitte (ListView, LVMenu)
;----------------------------------------Variables---------------------------End;----------------------------------------GUI-------------------------------Start
[/autoit] [autoit][/autoit] [autoit]
$GUI_mainWindow = GUICreate("Kundendatenbank", 1000, 750, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "fClose");------Ini-------Start
[/autoit] [autoit][/autoit] [autoit]
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
[/autoit] [autoit][/autoit] [autoit]
$M_datei = GUICtrlCreateMenu("Datei")
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
;------Menu--------End;-----ListView---Start
[/autoit] [autoit][/autoit] [autoit]
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]]
For $i = 0 To $IRS_structure_ONamen[0][0]-1
$TV_O[$i] = GUICtrlCreateTreeViewItem($IRS_structure_ONamen[$i+1][1], $TreeView)
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 = GUICtrlCreateMenuItem("Detailansicht", $CM_TV_K[$i][$x])
GUISetOnEvent(-1, "fDetails")
;-----LVMenu-------End
Next
Next
;-----ListView-----End;-----LVMenu-----Start
[/autoit] [autoit][/autoit] [autoit]
Global $CM_TV_O_rename[$IRS_structure_ONamen[0][0]]
For $i = 0 To $IRS_structure_ONamen[0][0]-1
$CM_TV_O[$i] = GUICtrlCreateContextMenu($TV_O[$i])
$CM_TV_O_rename = GUICtrlCreateMenuItem("Umbenennen", $CM_TV_O[$i])
GUISetOnEvent(-1, "fRename")
Next
;-----LVMenu-------End;-----StatusBar--Start
[/autoit] [autoit][/autoit] [autoit]
$StatusBar1 = _GUICtrlStatusBar_Create($GUI_mainWindow)
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, "Kundendatenbank Version 1.0.0 (by Martin Bucher)")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)
;-----StatusBar----EndGUISetState(@SW_SHOW, $GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit];//TODO
[/autoit] [autoit][/autoit] [autoit]
$GUI_detailWindow = GUICreate("Detailansicht", 750, 500, -1, -1)
GUISetState(@SW_HIDE, $GUI_detailWindow)GUISwitch($GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------GUI---------------------------------End;----------------------------------------Script----------------------------Start
[/autoit] [autoit][/autoit] [autoit]
While 1 * Sleep(10)
Sleep(100)
WEnd
;----------------------------------------Script------------------------------End;----------------------------------------Functions-------------------------Start
[/autoit] [autoit][/autoit] [autoit]
Func fClose()
Exit
EndFuncFunc fRename()
[/autoit] [autoit][/autoit] [autoit]
;~ $test = _GUICtrlTreeView_GetSelection($TreeView)
MsgBox(0, "", "Again it works!")
EndFuncFunc fDetails()
[/autoit]
;~ $test = _GUICtrlTreeView_GetSelection($TreeView)
MsgBox(0, "", "Again it works too!")
EndFunc
;----------------------------------------Functions---------------------------End$M_datei = GUICtrlCreateMenu("Datei")
[/autoit]
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
GUISetOnEvent($MI_beenden, "fClose")
selbst das will einfach nich -
-
Mein Script im MessageLoop Modus
Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
[/autoit] [autoit][/autoit] [autoit]
Author: Karill EndusaScript Function:
[/autoit] [autoit][/autoit] [autoit]
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]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <SQLite.au3>;----------------------------------------Variables-------------------------Start
[/autoit] [autoit][/autoit] [autoit]
;=> Globale Deklarationen verschoben in die For Schleifen der entsprechenden Abschnitte (ListView, LVMenu)
;----------------------------------------Variables---------------------------End;----------------------------------------GUI-------------------------------Start
[/autoit] [autoit][/autoit] [autoit]
$GUI_mainWindow = GUICreate("Kundendatenbank", 1000, 750, -1, -1);------Ini-------Start
[/autoit] [autoit][/autoit] [autoit]
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
[/autoit] [autoit][/autoit] [autoit]
$M_datei = GUICtrlCreateMenu("Datei")
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
;------Menu--------End;-----ListView---Start
[/autoit] [autoit][/autoit] [autoit]
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]]
For $i = 0 To $IRS_structure_ONamen[0][0]-1
$TV_O[$i] = GUICtrlCreateTreeViewItem($IRS_structure_ONamen[$i+1][1], $TreeView)
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 = GUICtrlCreateMenuItem("Detailansicht", $CM_TV_K[$i][$x])
;-----LVMenu-------End
Next
Next
;-----ListView-----End;-----LVMenu-----Start
[/autoit] [autoit][/autoit] [autoit]
Global $CM_TV_O_rename[$IRS_structure_ONamen[0][0]]
For $i = 0 To $IRS_structure_ONamen[0][0]-1
$CM_TV_O[$i] = GUICtrlCreateContextMenu($TV_O[$i])
$CM_TV_O_rename[$i] = GUICtrlCreateMenuItem("Umbenennen", $CM_TV_O[$i])
Next
;-----LVMenu-------End;-----StatusBar--Start
[/autoit] [autoit][/autoit] [autoit]
$StatusBar1 = _GUICtrlStatusBar_Create($GUI_mainWindow)
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, "Kundendatenbank Version 1.0.0 (by Martin Bucher)")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)
;-----StatusBar----EndGUISetState(@SW_SHOW, $GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit];//TODO
[/autoit] [autoit][/autoit] [autoit]
$GUI_detailWindow = GUICreate("Detailansicht", 750, 500, -1, -1)
GUISetState(@SW_HIDE, $GUI_detailWindow)
;----------------------------------------GUI---------------------------------End;----------------------------------------Script----------------------------Start
[/autoit] [autoit][/autoit] [autoit]
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[$IRS_structure_ONamen[0][0]-1]
MsgBox(0, "", "Case works!");[TODO]
EndSwitch
WEnd
;----------------------------------------Script------------------------------End;----------------------------------------Functions-------------------------Start
[/autoit] [autoit][/autoit] [autoit];----------------------------------------Functions---------------------------End
[/autoit]
hier ist das Problem dass ich das, was ich für $CM_TV_O_rename gemacht habe nicht für $CM_TV_K_details hinbekommewenn ich das ganze in den OnEvent Mode umschreibe habe ich aber nich die Variablen $i und $x der arrays die müsste ich irgendwie weitergeben können an eine funktion
-
ah danke leude so klappts danke sehr^^
-
damn danke ich hab gar nich dran gedacht dass man das ja in ID's umdenken muss... da haste natürlich recht ich dachte er springt da nur auf die variablen an xD
-
Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
[/autoit] [autoit][/autoit] [autoit]
Author: Karill EndusaScript Function:
[/autoit] [autoit][/autoit] [autoit]
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]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <SQLite.au3>;----------------------------------------Variables-------------------------Start
[/autoit] [autoit][/autoit] [autoit]
;=> Globale Deklarationen verschoben in die For Schleifen der entsprechenden Abschnitte (ListView, LVMenu)
;----------------------------------------Variables---------------------------End;----------------------------------------GUI-------------------------------Start
[/autoit] [autoit][/autoit] [autoit]
$GUI_mainWindow = GUICreate("Kundendatenbank", 1000, 750, -1, -1);------Ini-------Start
[/autoit] [autoit][/autoit] [autoit]
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
[/autoit] [autoit][/autoit] [autoit]
$M_datei = GUICtrlCreateMenu("Datei")
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
;------Menu--------End;-----ListView---Start
[/autoit] [autoit][/autoit] [autoit]
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
[/autoit] [autoit][/autoit] [autoit]
;=> Verschoben in die 2. For Schleife des ListView Bereichs
;-----LVMenu-------End;-----StatusBar--Start
[/autoit] [autoit][/autoit] [autoit]
$StatusBar1 = _GUICtrlStatusBar_Create($GUI_mainWindow)
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, "Kundendatenbank Version 1.0.0 (by Martin Bucher)")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)
;-----StatusBar----EndGUISetState(@SW_SHOW, $GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit];//TODO
[/autoit] [autoit][/autoit] [autoit]
$GUI_detailWindow = GUICreate("Detailansicht", 750, 500, -1, -1)
GUISetState(@SW_HIDE, $GUI_detailWindow)
;----------------------------------------GUI---------------------------------End;----------------------------------------Script----------------------------Start
[/autoit] [autoit][/autoit] [autoit]
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? -
ich werds mir morgen genauer durchlesen und melde mich dann noch ma,... bin ersma pennen und danke ersma an alle helfer^^
-
die ID des controls ist bekannt aber aus einer SQLite Datenbank in einer For schleife ausgelesen
(zum beispiel habe ich 12 user in ordner 0, 16 in ordner 1 und 2 User in Ordner 2)
was ich brauche ist dann zum beispiel bei einem doppelklick auf User 7 in Ordner 1 dass ich dann zum beispiel ne messagebox erhalte mit dem Inhalt "User Nr. 7 in Ordner Nr. 1 ausgewählt"Es können jederzeit neue User und Ordner dazukommen durch Speichern in der Datenbank also wird diese relativ dynamisch ausgelesen
-
an sich ein Lösungsweg ja... hätte wohl aber dazuschreiben sollen dass ich ehrlich gesagt später wenn das script fertig ist nicht mehr weiss wie viele daten wo drin stehen... das wird aus einer SQLite ausgelesen :pinch:
-
aber wie übergebe ich durch einen doppelklick oder durch einen klick auf "Detailansicht" die Variablen an die funktion?
-
Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
[/autoit] [autoit][/autoit] [autoit]
Author: Karill EndusaScript Function:
[/autoit] [autoit][/autoit] [autoit]
a script#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit];[includes]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiStatusBar.au3>;----------------------------------------Variables-------------------------Start
[/autoit] [autoit][/autoit] [autoit]
Global $TV[5][6]
Global $CM_TV[5]
;----------------------------------------Variables---------------------------End;----------------------------------------GUI-------------------------------Start
[/autoit] [autoit][/autoit] [autoit]
$GUI_mainWindow = GUICreate("Any GUI", 1000, 750, -1, -1);------Menu------Start
[/autoit] [autoit][/autoit] [autoit]
$M_datei = GUICtrlCreateMenu("Datei")
$MI_beenden = GUICtrlCreateMenuItem("Beenden", $M_datei)
;------Menu--------End;-----ListView---Start
[/autoit] [autoit][/autoit] [autoit]
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))
For $i = 0 To 4
$TV[$i][0] = GUICtrlCreateTreeViewItem("Ordner 1_"&$i, $TreeView)
For $x = 1 To 5
$TV[$i][$x] = GUICtrlCreateTreeViewItem("User "&$x&", Ordner "&$i, $TV[$i][0])
Next
Next
;-----ListView-----End;-----LVMenu-----Start
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 4
For $x = 1 To 5
$CM_TV[$i] = GUICtrlCreateContextMenu($TV[$i][$x])
GUICtrlCreateMenuItem("Detailansicht", $CM_TV[$i])
Next
Next
;-----LVMenu-------End;-----StatusBar--Start
[/autoit] [autoit][/autoit] [autoit]
$StatusBar1 = _GUICtrlStatusBar_Create($GUI_mainWindow)
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, "Any StatusBar text")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)
;-----StatusBar----EndGUISetState(@SW_SHOW, $GUI_mainWindow)
[/autoit] [autoit][/autoit] [autoit];//TODO
[/autoit] [autoit][/autoit] [autoit]
$GUI_detailWindow = GUICreate("Detailansicht", 750, 500, -1, -1)
GUISetState(@SW_HIDE, $GUI_detailWindow)
;----------------------------------------GUI---------------------------------End;----------------------------------------Script----------------------------Start
[/autoit] [autoit][/autoit] [autoit]
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
EndSwitch
WEnd
;----------------------------------------Script------------------------------End;----------------------------------------Functions-------------------------Start
[/autoit] [autoit][/autoit] [autoit];----------------------------------------Functions---------------------------End
[/autoit]da, bitte... der gesamte code... aber die codefragmente die ich euch gegeben hab sind die um die es geht^^
-
nun... wie sich vllt aus dem titel erkennen lässt erstelle bzw fülle ich ein Array in einer for schleife
Spoiler anzeigen
[autoit]For $i = 0 To 4
[/autoit]
For $x = 1 To 5
$CM_TV[$i] = GUICtrlCreateContextMenu($TV[$i][$x])
GUICtrlCreateMenuItem("Detailansicht", $CM_TV[$i])
Next
Next$TV[$i][$x] ist im übrigen ein TreeView und kommt aus folgender schleife
Spoiler anzeigen
[autoit]$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))
[/autoit]
For $i = 0 To 4
$TV[$i][0] = GUICtrlCreateTreeViewItem("Ordner 1_"&$i, $TreeView)
For $x = 1 To 5
$TV[$i][$x] = GUICtrlCreateTreeViewItem("User "&$x&", Ordner "&$i, $TV[$i][0])
Next
Nextnun suche ich nach einer Möglichkeit mit GUIGetMsg in der standard while schleife auf die elemente des arrays zuzugreigen als auch $i und $x auszulesen
Spoiler anzeigen
[autoit]While 1 * Sleep(10)
[/autoit]
$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
EndSwitch
WEnd
das is meine derzeitige whileschleife...
Ich bräuchte jetz halt ne Möglichkeit dass bei einem klick auf Detailansicht sich nen neues Fenster öffnet (an sich für mich kein problem) und dass an dieses Fenster dann $x und $i übergeben werden bzw. einer von mir definierten Funchat wer ne Idee oder gar die Musterlösung?
-
es gibt ne möglichkeit... jedoch weiss ich nicht bzw. glaube ich nicht dass AutoIT zu soetwas in der Lage ist...
Ich möchte hierbei auf das Tool "TeamSpeak Overlay" verweisen, welches in einem Spiel anzeigt wer gerade spricht, was einem in einer privaten Nachricht gesendet wurde sowie die FPS und die Uhrzeit...
dieses Programm arbeitet über die DirectDraw Funktionen.wie gesagt, glaube nich dass man DD mit AutoIT ansprechen kann
-
-
gut ich bin noch Neuling mit AutoIt aber kann man denn variablen direkt in nen string reinknallen?
sonst würde ichs mal mit
[autoit]RunWait("load.exe --comport=("&$comport&") --comspeed=9600 --drive=("&$drive&") --command=C:X:30:2:E")
[/autoit]
versuchen -
[autoit]
[/autoit][autoit][/autoit][autoit]
#cs ----------------------------------------------------------------------------AutoIt Version: 3.3.2.0
[/autoit][autoit][/autoit][autoit]
Author: myNameScript Function:
[/autoit][autoit][/autoit][autoit]
Template AutoIt script.#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start - Add your code below here
[/autoit][autoit][/autoit][autoit];[includes]
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>$mainWindow = GUICreate("Elemgen v1.0.0 - Tool to read out elements.data for PW, ES and JD (and maybe KF too) - made by KE$$", 800, 600, -1, -1)
[/autoit][autoit][/autoit][autoit]
;~ $fileWindow = GUICreate("", 800, 600, 0, 0)$datei = GUICtrlCreateMenu("Datei")
[/autoit][autoit][/autoit][autoit]
$openFile = GUICtrlCreateMenuItem("Open...", $datei)$editField = GUICtrlCreateEdit("", 0, 0, 800, 557)
[/autoit][autoit][/autoit][autoit]$StatusBar1 = _GUICtrlStatusBar_Create($mainWindow)
[/autoit][autoit][/autoit][autoit]
_GUICtrlStatusBar_SetSimple($StatusBar1)
_GUICtrlStatusBar_SetText($StatusBar1, " This is Beta!")
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 20)GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $openFile
[/autoit][autoit][/autoit][autoit]
$elementsDataFile = FileOpen(@ScriptDir&"\elements.data", 4)
$eleDataFileRead = FileRead($elementsDataFile, FileGetSize(@ScriptDir&"\elements.data"))
$0xWeg = StringTrimLeft($eleDataFileRead, 2)
GUICtrlSetData($editField, $0xWeg)
FileClose($elementsDataFile)EndSwitch
[/autoit][autoit][/autoit][autoit][/autoit]
WEndJo, ich würde jetz gerne noch den String der in der variablen $0xWeg gespeichert ist um ein paar leerzeichen erweitern... genauer gesagt nach jedem 6. zeichen im string
Beispiel:
String: 003100300000524800
soll werden: 003100 300000 524800der originalstring ist um einiges länger
[autoit]MsgBox(0, "", StringLen($0xWeg))
[/autoit]lieferte 57226352 Zeichen
-
InetGetInfo( [ handle [, index ]] )
index:
[optional] The index for the data to retrieve. If this value is -1 an array containing all of the below data will be returned.
0 - Bytes read so far (this is updated while the download progresses).
1 - The size of the download (this may not always be present).
2 - Set to True if the download is complete, False if the download is still ongoing.
3 - True if the download was successful. If this is False then the next data member will be non-zero.
4 - The error value for the download. The value itself is arbitrary. Testing that the value is non-zero is sufficient for determining if an error occurred.
5 - The extended value for the download. The value is arbitrary and is primarily only useful to the AutoIt developers.wäre die funktion die man nutzen könnte um die daten zu bekommen die du brauchst... ne progressbar müsste man dazu noch selbst erstellen
-
darf ich fragen für was diese Makros gut waren also was der rückgabewert war?^^