ssyork Posted August 25, 2009 Share Posted August 25, 2009 Hi all I am trying to create a tree view from data from SQL, which gets the data from the SQL server in to a tree form and then I am trying to get a message box to appear when selected the object in treeview, this is where I am at the moment , I just can't figure out how to get a msg box up when selecting the item in the treeview - any help. Thank you in advance expandcollapse popup$objAAAcountID = "3" $server = "SQL003" $db = "AutoAdmin" $username = "AutoAdmin" $password = "Password1" #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <TabConstants.au3> #include <TreeViewConstants.au3> #include <WindowsConstants.au3> #include <ie.au3> $Form1 = GUICreate("Form1", 633, 453, 261, 171) $TreeView1 = GUICtrlCreateTreeView(56, 32, 537, 361) _usermessage() GUICtrlSetOnEvent($TreeView1, "_Show") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _usermessage() ;Set Varients $sqlCon = ObjCreate("ADODB.Connection") $oMyError = ObjEvent("AutoIt.Error", "ComError") $oMyError = "" $sqlCon = ObjCreate("ADODB.Connection") $sqlCon.Open("DRIVER={SQL Server};SERVER=" & $server & ";DATABASE=" & $db & ";uid=" & $username & ";pwd=" & $password & ";") $rsAccounts = $sqlCon.Execute("SELECT * FROM table_UserMessages") With $rsAccounts While Not .EOF $MessageUserID = .Fields("UserID" ).value $MessageStatus = .Fields ("MessageStatus").value If $MessageUserID = $objAAAcountID Then if $MessageStatus = "Active" Then $x = .Fields ("MessageID").value $x = GUICtrlCreateTreeViewItem(.Fields ("MessageHeader").value, $TreeView1) Endif Endif .MoveNext WEnd EndWith $sqlCon.Close EndFunc Func _Show() ConsoleWrite ("got you!") MsgBox(0,"",GUICtrlRead(@GUI_CtrlId,1)) EndFunc Link to comment Share on other sites More sharing options...
Authenticity Posted August 25, 2009 Share Posted August 25, 2009 To instruct AutoIt to switch to event mode you need to specify that before attaching any event handlers. For this task I don't think you need event mode at all. expandcollapse popup#include <GUIConstantsEx.au3> #include <StructureConstants.au3> #include <TreeViewConstants.au3> #include <WindowsConstants.au3> GUIRegisterMsg($WM_NOTIFY, '_WM_NOTIFY') Global $hGUI = GUICreate('Test', 400, 400) Global $TreeView = GUICtrlCreateTreeView(0, 0, 400, 400) GUICtrlSetBkColor($TreeView, 0x4080DD) GUICtrlSetColor($TreeView, 0xEEEE90) For $i = 1 To 10 Local $ParentItem = GUICtrlCreateTreeViewItem('Parent ' & $i, $TreeView) For $j = 1 To 20 GUICtrlCreateTreeViewItem('Child ' & $i, $ParentItem) Next Next GUISetState() Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() Exit Func _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $tNMHdr = DllStructCreate($tagNMHDR, $ilParam), $tNM_TREEVIEW Local $hWndFrom = DllStructGetData($tNMHdr, 'hWndFrom') Local $iIDFrom = DllStructGetData($tNMHdr, 'IDFrom') Local $iCode = DllStructGetData($tNMHdr, 'Code') If $iIDFrom = $TreeView Then Switch $iCode Case $TVN_SELCHANGED, $TVN_SELCHANGEDW If GUICtrlRead($TreeView) > 0 Then _ MsgBox(0x40, 'Item Clicked', 'ID: ' & GUICtrlRead($TreeView) & @CRLF & 'Text: ' & GUICtrlRead($TreeView, 1)) EndSwitch EndIf Return $GUI_RUNDEFMSG EndFunc Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now