Jump to content
Sign in to follow this  
tempman

GUICtrlCreateInput and Tabs

Recommended Posts

tempman

Hi,

I have 3 tabs (Access Log, Error Log, Geo Log). When I choice button (...) from Access Log Tab to select an Access Log file the GUICtrlCreateInput from Access Log Tab become visibe to all others tubs?!?

#include <GuiConstants.au3>

GuiCreate("Log", 340, 300)

GuiCtrlCreateTab(5, 5, 330, 250)

GuiCtrlCreateTabItem("Access Log")
$button_1 = GUICtrlCreateButton ("...", 275, 90, 20, 20)
$access_log = GUICtrlCreateInput ("1", 150, 90, 120, 20)

GuiCtrlCreateTabItem("Error Log")
$button_3= GUICtrlCreateButton ("...", 275, 120, 20, 20)
$error_log = GUICtrlCreateInput ("2", 150, 120, 120, 20)

GuiCtrlCreateTabItem("Geo Log")
$button_5 = GUICtrlCreateButton ("...", 275, 150, 20, 20)
GUIStartGroup()
$lociraj_log = GUICtrlCreateInput ("3", 150, 150, 120, 20)

GuiSetState()

While 1
$msg = GUIGetMsg()

Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop

Case $msg = $button_1

$message = "Access Log file..."
$PATH_A = FileOpenDialog($message, @ScriptDir & "\", "Access Log (*.log;*.txt)", 1 + 4 )
If @error Then Exit

GUICtrlDelete($access_log)
$access_log = GUICtrlCreateInput($PATH_A, 150, 90, 120, 20)

Case $msg = $button_3

Case $msg = $button_5

EndSelect

WEnd

GUIDelete()
Exit

How to avoid that?

Share this post


Link to post
Share on other sites
guinness

Look at GUISwitch for future reference, but in that example just use GUICtrlSetData.

Case $msg = $button_1

            $message = "Access Log file..."
            $PATH_A = FileOpenDialog($message, @ScriptDir & "\", "Access Log (*.log;*.txt)", 1 + 4)
            If @error Then ExitLoop
            GUICtrlSetData($access_log, $PATH_A)

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Melba23

tempman,

Why delete and recreate the input? Just set the existing input to the selected filename: ;)

$message = "Access Log file..."
$PATH_A = FileOpenDialog($message, @ScriptDir & "\", "Access Log (*.log;*.txt)", 1 + 4)
If @error Then Exit
GUICtrlSetData($access_log, $PATH_A) ; <<<<<<<<<<<<<<<<<<<<<<<<

And you really should close the tab definition structure with this line:

GUICtrlCreateTabItem("") ; <<<<<<<<<<<<<<<<<<<<<<<<<<

GUISetState()

All clear? :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
PlayHD

You ca easy avoid to delete the input by using GuiCtrlSetData($access_log,$PATH_A) instead delete it.

However if you really want to delete it then:

;;I marked with comments modified lines

#include <GuiConstants.au3>
$Form = GuiCreate("Log", 340, 300) ;; store window hwnd to a var

GuiCtrlCreateTab(5, 5, 330, 250)

$Tab1 = GuiCtrlCreateTabItem("Access Log") ;; store tabitem ID to a var
$button_1 = GUICtrlCreateButton ("...", 275, 90, 20, 20)
$access_log = GUICtrlCreateInput ("1", 150, 90, 120, 20)

$Tab2 = GuiCtrlCreateTabItem("Error Log")
$button_3= GUICtrlCreateButton ("...", 275, 120, 20, 20)
$error_log = GUICtrlCreateInput ("2", 150, 120, 120, 20)

GuiCtrlCreateTabItem("Geo Log")
$button_5 = GUICtrlCreateButton ("...", 275, 150, 20, 20)
GUIStartGroup()
$lociraj_log = GUICtrlCreateInput ("3", 150, 150, 120, 20)
GuiCtrlCreateTabItem("") ;;;;close tabs
GuiSetState()

While 1
$msg = GUIGetMsg()

Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop

Case $msg = $button_1

$message = "Access Log file..."
$PATH_A = FileOpenDialog($message, @ScriptDir & "\", "Access Log (*.log;*.txt)", 1 + 4 )
If @error Then Exit

GUICtrlDelete($access_log)
GUISwitch($Form,$Tab1) ;;Switch tab to create in $Tab1
$access_log = GUICtrlCreateInput($PATH_A, 150, 90, 120, 20)
GUICtrlSetState( $Tab2, $GUI_SHOW) ;;redraw Input Control
GUICtrlSetState( $Tab1, $GUI_SHOW) ;;redraw Input Control
Case $msg = $button_3

Case $msg = $button_5

EndSelect

WEnd

GUIDelete()
Exit

Share this post


Link to post
Share on other sites
Melba23

PlayHD,

Just for completeness, you do not need to show another tab before the one you have just modified - and it is a good idea to reset the current GUI after you have done: ;)

GUICtrlDelete($access_log)
GUISwitch($Form,$Tab1)
$access_log = GUICtrlCreateInput($PATH_A, 150, 90, 120, 20)
; GUICtrlSetState( $Tab2, $GUI_SHOW) ; Not needed
GUICtrlSetState( $Tab1, $GUI_SHOW) ; This alone is sufficient to redraw the tab
GUICtrlCreateTabItem("")  ; Reclose the tab definition - this is important!!!!!!!!
GUISwitch($Form) ; If you forget you might find yourself later creating control where you do not intend ;)

M23

Edited by Melba23
Added a line

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
guinness

Melba23 was the first one who pointed me to GUISwitch.

Source:


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×