dynamitemedia Posted November 7, 2014 Posted November 7, 2014 I have a List view i loaded into a Tab... once loaded its showing in all Tabs... here is my full code : expandcollapse popup#include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <GuiListView.au3> #include <StaticConstants.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> #include <File.au3> #include <Array.au3> #include <Process.au3> #include <Constants.au3> #include <String.au3> #include <Array.au3> $Form1 = GUICreate("0", 601, 401, 186, 114) Global $favoritesPath = @ScriptDir & "\listings\favorites.ini" ; Set flag to indicate double click in ListView ; -------------- Channel Guide Tab -------------- $plugins = GUICtrlCreateTab(8, 8, 580, 336) $Guide = GUICtrlCreateTabItem("Channel Guide ") ; Need to open XML to display $Button10 = GUICtrlCreateButton("Open XML", 32, 56, 75, 25) GUICtrlSetFont(-1, 8, 400, 0, "Arial") ; Refreshes the XML opened up $Button12 = GUICtrlCreateButton("Refresh", 120, 56, 75, 25) GUICtrlSetFont(-1, 8, 400, 0, "Arial") ; add the XML from above $List1 = GUICtrlCreateListView("ID|Name", 31, 89, 529, 230) ; ---------------- Favorites Tab -------------- $TabSheet2 = GUICtrlCreateTabItem("Favorites") ; Adds dialog GUICtrlCreateLabel("Add Video feed To Your Favorites", 144, 64, 287, 26) GUICtrlSetFont(-1, 12, 400, 0, "Arial") ; Add video Name $Label1 = GUICtrlCreateLabel(" Name :", 72, 112, 67, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") $Input1 = GUICtrlCreateInput("", 144, 112, 361, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") ; Add quality $Label2 = GUICtrlCreateLabel("URL :", 88, 152, 43, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") $Input2 = GUICtrlCreateInput("", 144, 152, 361, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") ; Add quality $Label3 = GUICtrlCreateLabel("Quality :", 72, 192, 59, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") $Input3 = GUICtrlCreateInput("", 144, 192, 361, 22) GUICtrlSetFont(-1, 12, 400, 0, "Arial") ; Adds dialog $Label4 = GUICtrlCreateLabel("NOTE: and is set to 'High'", 56, 280, 483, 19) GUICtrlSetFont(-1, 9, 400, 0, "Arial") ; Now lets save to favorites XML $Button9 = GUICtrlCreateButton("Save", 432, 224, 75, 25) GUICtrlSetFont(-1, 9, 400, 0, "Arial") ; clear $Button14 = GUICtrlCreateButton("Clear", 346, 224, 75, 25) GUICtrlSetFont(-1, 9, 400, 0, "Arial") ; ------------ Plugins Tab -------------------- $TabSheet3 = GUICtrlCreateTabItem("Plugins") ; gets Listing of files in plugin folder BY extension $Label11 = GUICtrlCreateLabel("Available Plugins", 32, 68, 185, 18) GUICtrlSetFont(-1, 12, 400, 0, "Arial") $List2 = GUICtrlCreateList("", 32, 88, 521, 174) GUICtrlSetFont(-1, 12, 400, 0, "Arial") Local $FileList = _FileListToArray("plugins", "*.bat*") For $i = 1 To $FileList[0] GUICtrlSetData($List2, RemoveExt(GetFileName($FileList[$i]))) Next ; Gets updates all Plugins in plugins folder $Button11 = GUICtrlCreateButton("Refresh Plugins", 456, 288, 90, 25) GUICtrlSetFont(-1, 8, 400, 0, "Arial") ; Launc website $Button13 = GUICtrlCreateButton("Get More Plugins", 360, 288, 90, 25) GUICtrlSetFont(-1, 8, 400, 0, "Arial") ; Settings page $TabSheet1 = GUICtrlCreateTabItem("Settings") GUICtrlCreateGroup(" Program Settings ", 24, 64, 545, 115) ; add your token here GUICtrlCreateLabel("Token", 32, 80, 35, 17) GUICtrlCreateInput("", 32, 96, 505, 21) ; add IP Port for streamer $Labe20 = GUICtrlCreateLabel("Port # ( Default is 8080)", 32, 128, 116, 17) GUICtrlCreateInput("8080", 32, 144, 121, 21) ; streaming preference Local $idStream = GUICtrlCreateCombo("Protocol", 184, 144, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label10 = GUICtrlCreateLabel("Preferred Streaming Protocol", 184, 128, 139, 17) GUICtrlSetData($idStream , "RTMP|HLS", "RTMP") ; Now Lets save to programSettings.ini $Button7 = GUICtrlCreateButton("Save", 456, 140, 75, 25) ; create Group Video Settings GUICtrlCreateGroup("", -99, -99, 1, 1) $Group2 = GUICtrlCreateGroup(" Video Settings ", 24, 216, 545, 115) ; FPS Local $idFPS = GUICtrlCreateCombo("", 32, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label5 = GUICtrlCreateLabel("FPS", 32, 240, 24, 17) GUICtrlSetData($idFPS, "15|24.97|25|29.97|30", "15") ; Width Local $idWidth = GUICtrlCreateCombo("", 136, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label6 = GUICtrlCreateLabel("Width", 136, 240, 32, 17) GUICtrlSetData($idWidth, "320|640|720|1080", "320") ; Height Local $idHeight = GUICtrlCreateCombo("", 240, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label7 = GUICtrlCreateLabel("Height", 240, 240, 35, 17) GUICtrlSetData($idHeight, "240|480|1080|1920", "240") ; Video Bit Rate Local $idVBR = GUICtrlCreateCombo("", 344, 256, 100, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label8 = GUICtrlCreateLabel("Video Bit Rate", 344, 240, 72, 17) GUICtrlSetData($idVBR, "300|600|800|1000|1500|2000", "300") ; Audio Bit Rate Local $idABR = GUICtrlCreateCombo("", 456, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) $Label9 = GUICtrlCreateLabel("Audio Bit Rate", 456, 240, 72, 17) GUICtrlSetData($idABR, "96|128|192|256", "96") GUICtrlCreateGroup("", -99, -99, 1, 1) ; Now Lets save to videoSettings.ini $Button8 = GUICtrlCreateButton("Save", 456, 288, 75, 25) GUICtrlCreateTabItem("") ; -------------- ends settings page ---------------------------- ; ------------- Buttons on Bottom of Tabs ---------------------------- $Button1 = GUICtrlCreateButton("Watch", 14, 360, 75, 25) $Button2 = GUICtrlCreateButton("Stop All", 94, 360, 75, 25) $Button3 = GUICtrlCreateButton("Record", 336, 360, 75, 25) $Button5 = GUICtrlCreateButton("Stream", 416, 360, 75, 25) $Button6 = GUICtrlCreateButton("Add to favorites", 496, 360, 91, 25) ; ------------------ Functions --------------------------- Func RemoveExt($Input) Local $ExtArray = StringSplit($Input, ".") Return StringReplace($Input, "." & $ExtArray[$ExtArray[0]], "", -1) EndFunc Func RemoveExtRegExp($Input) Return StringRegExpReplace($Input, "\.[^.]*$", "") EndFunc Func GetFileName($Input) Local $PathArray = StringSplit($Input, "\/") Return $PathArray[$PathArray[0]] EndFunc Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) Local $tagNMHDR, $event, $hwndFrom, $code $tagNMHDR = DllStructCreate("int;int;int", $lParam) If @error Then Return 0 $code = DllStructGetData($tagNMHDR, 3) If $wParam = $List1 And $code = -3 And _GUICtrlListView_GetSelectedCount($List1) > 0 Then ;Put code here to deal with the double click $col_value = _GUICtrlListView_GetItemText($List1, _GUICtrlListView_GetNextItem($List1), 0) $xml=FileRead($xmlName) $sSearch=_StringBetween($xml,"ID='" & $col_value & "'","/>") $sResult=_ArrayToString($sSearch,"") Local $splitXML = StringSplit($sResult, "'") For $i = 1 To $splitXML[0] Next $rURL = $splitXML[2] $rName = $splitXML[4] $rQuality = $splitXML[6] ConsoleWrite($rQuality & @CRLF) If $rQuality = ' quality=' then $realQuality = $splitXML[7] msgbox(0, "Quality is 7", $realQuality & @CRLF) Else $realQuality = $splitXML[6] msgbox(0, "Quality is 6", $realQuality & @CRLF) EndIf endif Return $GUI_RUNDEFMSG EndFunc ; -------------- button functions ---------------------------- GUISetState(@SW_SHOW) ; Look for double clicks GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") While 1 $MSG = GUIGetMsg() Select Case $MSG = $GUI_EVENT_CLOSE Exitloop Case $MSG = $Button1 ; watch Case $MSG = $Button2 ; Stop all Button Case $MSG = $Button3 ; recording Button Case $MSG = $Button5 ; streaming Button Case $MSG = $Button6 ; save to favorites Button $col_value = _GUICtrlListView_GetItemText($List1, _GUICtrlListView_GetNextItem($List1), 1) msgbox (0, "You Selected This Video Feed", $col_value) ; FileWriteLine("listings\favorites.xml",'') Case $MSG = $Button7 ; save to programSettings.ini Case $MSG = $Button8 ; save to videoSettings.ini Case $MSG = $Button9 ; save to favroites.xml $URL = GUICtrlRead($Input2) $name = GUICtrlRead($Input1) $quality = GUICtrlRead($Input3) $favXML = "listings\favs.xml" If GuiCtrlRead($Input1) = "" Then MsgBox (0,"Empty", "Name can't Be empty, Try again") ElseIf GuiCtrlRead($Input2) = "" Then MsgBox (0,"Empty", "URL can't Be empty, Try again") ElseIf GuiCtrlRead($Input3) = "" Then MsgBox (0,"Empty", "Quality can't Be empty, Try again") Else Local $iCountLines = _FileCountLines($favXML) ; Retrieve the number of lines in the current script. $ID = $iCountLines + 1 FileWriteLine($favXML, "<channel ID='" & $ID & "' url='" & $URL & "' name='" & $name & "' quality='" & $quality & "'/>""") GUICtrlSetData($Input1, "") GUICtrlSetData($Input2, "") GUICtrlSetData($Input3, "") ; Run("listings\createFavorites.bat") MsgBox(0, "", "Saved to Favorites!") EndIf Case $MSG = $Button10 ; Need to open XML to display $openXML = FileOpenDialog("Choose a file", @ScriptDir & "\listings", "XML (*.xml)", 1 + 4 ) If @error Then MsgBox(0,"","No File(s) chosen") Else $openXML = StringReplace($openXML, "|", @CRLF) Dim $xmlName = $openXML MsgBox(0,"IpTvMyWay v2.0","You chose " & $xmlName) _GUICtrlListView_DeleteAllItems($List1) $sRead = FileRead($openXML) Global $aID = StringRegExp($sRead, "(?i)ID='(.*?)'", 3) Global $aName = StringRegExp($sRead, "(?i)name='(.*?)'", 3) Global $aQuality= StringRegExp($sRead, "(?i)quality='(.*?)'", 3) Global $aUrl= StringRegExp($sRead, "(?i)url='(.*?)'", 3) $iUbound = UBound($aID) If UBound($aName) > $iUbound Then $iUbound = UBound($aName) $List1 = GUICtrlCreateListView("ID|Name",31, 89, 529, 230) For $i = 0 To $iUbound - 1 $strData = "" If UBound($aID) > $i Then $strData &= $aID[$i] If UBound($aName) > $i Then $strData &= "|" & $aName[$i] _GUICtrlListView_SetColumnWidth($List1, 0, 40) _GUICtrlListView_SetColumnWidth($List1, 1, 440) GUICtrlCreateListViewItem($strData, $List1) GUICtrlSetFont(-1, 10, 400, 0, "Arial") Next EndIf Case $MSG = $Button11 ; Gets updates all Plugins in plugins folder Case $MSG = $Button12 ; Refreshes the XML opened up _GUICtrlListView_DeleteAllItems($List1) $sRead = FileRead($openXML) Global $aID = StringRegExp($sRead, "(?i)ID='(.*?)'", 3) Global $aName = StringRegExp($sRead, "(?i)name='(.*?)'", 3) Global $aQuality= StringRegExp($sRead, "(?i)quality='(.*?)'", 3) Global $aUrl= StringRegExp($sRead, "(?i)url='(.*?)'", 3) $iUbound = UBound($aID) If UBound($aName) > $iUbound Then $iUbound = UBound($aName) $List1 = GUICtrlCreateListView("ID|Name", 31, 89, 529, 230) For $i = 0 To $iUbound - 1 $strData = "" If UBound($aID) > $i Then $strData &= $aID[$i] If UBound($aName) > $i Then $strData &= "|" & $aName[$i] _GUICtrlListView_SetColumnWidth($List1, 0, 40) _GUICtrlListView_SetColumnWidth($List1, 1, 440) GUICtrlCreateListViewItem($strData, $List1) GUICtrlSetFont(-1, 10, 400, 0, "Arial") Next Case $MSG = $Button13 ; launches website Case $MSG = $Button14 ; clears favorites GUICtrlSetData($Input1, "") GUICtrlSetData($Input2, "") GUICtrlSetData($Input3, "") MsgBox(0, "", "Form Cleared!") EndSelect Wend ; Deregister "Click on ListView function" GUIRegisterMsg($WM_NOTIFY, "") i am sure it has something to do with setting "focus" or something like that but i do not see anything like this in the forum. Thank you
BrewManNH Posted November 7, 2014 Posted November 7, 2014 You created the Listview $list1 twice, once in the Channel Guide tab creation section and again in your message loop. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
dynamitemedia Posted November 7, 2014 Author Posted November 7, 2014 i did that so i could load XML when open button was clicked. is there another way i could do that? when i took out the list1 on bottom it didn't load and if caused an error when i took it out in channel guide thank you
BrewManNH Posted November 8, 2014 Posted November 8, 2014 Just delete all the items, as you do, and then just create new listview items using the original listview. The way you're doing it now, you'r creating not 1 a limitless number of listviews in the same GUI without deleting any of the previous ones. There's no need to recreate the listview, as it already exists and in the correct tab, just use the one you already created at the start. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
dynamitemedia Posted November 8, 2014 Author Posted November 8, 2014 This worked great thanks! really starting to like programming with this... Much better than Bat files! so many 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