kor Posted August 2, 2012 Share Posted August 2, 2012 Func _CreateBulkInput($oGUI, $sHeaderText, $iLeft = 0, $iTop = 0, $iWidth = 0, $iHeight = 0) Global $bBulk = True Local $oControl = _GUICtrlRichEdit_Create($oGUI, "", $iLeft, $iTop, $iWidth, $iHeight, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)) _GUICtrlRichEdit_AppendText($oControl, $sHeaderText & @CR) ; append header text _GUICtrlRichEdit_SetModified($oControl, False) ; set modified flag to false Return $oControl EndFunc ;==>_CreateBulkInput Func _DestroyBulkInput() Global $bBulk = False _GUICtrlRichEdit_Destroy($oControl) ;Return $oControl EndFunc ;==>_DestroyBulkEdit I'm wondering how I can get the 2 functions to work correctly. I am already using th $bBulk var to allow me to easily check if the richedit box exists or not. (btw, if someone knows an easy way to check if a richedit exists or not let me know) My problem is that I don't know how to allow the DestroyBulkInput function to see the $oControl from the previous function. I've tried making it Global but that doesn't work either. I've heard that if you "Return" a variable from a function and it is global you can somehow allow other functions access to that variable but I'm not sure how exactly that works. Link to comment Share on other sites More sharing options...
guinness Posted August 2, 2012 Share Posted August 2, 2012 Do not declare Global variables inside functions. Consult the help file about 'variable declaration.' 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 updated code seems to work. Func _CreateBulkInput($oGUI, $sHeaderText, $iLeft = 0, $iTop = 0, $iWidth = 0, $iHeight = 0) $cBulk = _GUICtrlRichEdit_Create($oGUI, "", $iLeft, $iTop, $iWidth, $iHeight, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)) _GUICtrlRichEdit_AppendText($cBulk, $sHeaderText & @CR) ; append header text _GUICtrlRichEdit_SetModified($cBulk, False) ; set modified flag to false EndFunc ;==>_CreateBulkInput Func _DestroyBulkInput($cBulk) _GUICtrlRichEdit_Destroy($cBulk) EndFunc ;==>_DestroyBulkEdit now.. does anyone know how to check if a rich edit exists or not? Link to comment Share on other sites More sharing options...
BrewManNH Posted August 2, 2012 Share Posted August 2, 2012 You should be able to determine if you've created it, and that it still exists, by checking the value of the variable that holds the control's handle. 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 Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 You should be able to determine if you've created it, and that it still exists, by checking the value of the variable that holds the control's handle. I can, the problem is that once the rich edit is created the handle stays until you close the script. Even after I have issued _GuictrlRichEdit_Destroy() Sample output Example: Using the above create and destroy functions.. they are called with this code: ConsoleWrite("bulk1 = " & $cBulk & @CR) If $cBulk > 1 Then ConsoleWrite("window is there ") _DestroyBulkInput($cBulk) EndIf ConsoleWrite("bulk2 = " & $cBulk & @CR) If (GUICtrlRead($aControls[4]) = 1 Or GUICtrlRead($aControls[5]) = 1 Or GUICtrlRead($aControls[6]) = 1) And $cBulk < 1 Then _CreateBulkInput($oGUI, $sHeaderText, $iWidth - 450, 50, $iWidth - 100, $iHeight - 140) EndIf ConsoleWrite("bulk3 = " & $cBulk & @CR) Here is my sample scite output bulk1 = 0 bulk2 = 0 bulk3 = 0x001B0B64 bulk1 = 0x001B0B64 window is there bulk2 = 0x001B0B64 bulk3 = 0x001B0B64 bulk1 = 0x001B0B64 window is there bulk2 = 0x001B0B64 bulk3 = 0x001B0B64 This is after creating and destroying the richedit. I guess I need some way to clear the $cBulk variable once the RichEdit has been destroyed so then when I check if the handle has a value it would be null? Link to comment Share on other sites More sharing options...
BrewManNH Posted August 2, 2012 Share Posted August 2, 2012 (edited) $cBulk = "" EDIT: It might work better if you used the Handle of the control (GUICtrlGetHandle($cBulk)) instead of its control ID, not sure I haven't tried it, but the UDF functions generally work better with controls created using them than with native controls. Edited August 2, 2012 by BrewManNH 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 Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 $cBulk = ""EDIT: It might work better if you used the Handle of the control (GUICtrlGetHandle($cBulk)) instead of its control ID, not sure I haven't tried it, but the UDF functions generally work better with controls created using them than with native controls.tried both of those solutions.Setting the $var to null or some value other than the handle doesn't work.And using guictrlgethandle just returns 0 every time. Link to comment Share on other sites More sharing options...
BrewManNH Posted August 2, 2012 Share Posted August 2, 2012 Can you post a reproducer script showing the issue, not just pieces of a script but one that I can run and test, to see what's happening for myself? I want to see if you're doing it right, and if there's an issue with with the procedure. 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 Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 (edited) full script (the part I'm working on is when you press the "bulk" button) removed Edited August 3, 2012 by kor Link to comment Share on other sites More sharing options...
BrewManNH Posted August 2, 2012 Share Posted August 2, 2012 (edited) I can't run that script because I don't have any of the icon files, it just closes itself because the "buttons" using the icon isn't created.Nevermind, I substituted the icons for a default icon file and got it to run.I see your problem, when you call the function to destroy the control, you're using the same variable name as the global variable in the function parameter. This causes that version of $cBulk to be a local variable, so all you're doing is destroying and changing the value of, the local variable. This has no effect on the global variable of the same name. You need to change the variable name in the _DestroyBulkInput function, or as shown below use ByRef to refer back to the global variable. Maybe something like below will work.Func _DestroyBulkInput(ByRef $cBulkIn) ConsoleWrite("before rich destroy = " & $cBulk & @CR) _GUICtrlRichEdit_Destroy($cBulkIn) $cBulkIn = "" ConsoleWrite("after rich destroy = " & $cBulk & @CR) EndFunc ;==>_DestroyBulkInput Edited August 2, 2012 by BrewManNH 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 Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 sorry. icons attached.close.zip Link to comment Share on other sites More sharing options...
kor Posted August 2, 2012 Author Share Posted August 2, 2012 using this workaround code. it will accomplish what I need If $iPushed >= 0 Then $iPushed += 1 ConsoleWrite("ipushed = " & $iPushed & " ") If Mod($iPushed, 2) Then ; if even ; create _HideTopControls($aControls) _CreateBulkInput($oGUI, $sHeaderText, $iWidth - 450, 50, $iWidth - 100, $iHeight - 140) Else ; destory _DestroyBulkInput($cBulk) _ShowTopControls($aControls) EndIf Link to comment Share on other sites More sharing options...
guinness Posted August 3, 2012 Share Posted August 3, 2012 $cBulk = ""EDIT: It might work better if you used the Handle of the control (GUICtrlGetHandle($cBulk)) instead of its control ID, not sure I haven't tried it, but the UDF functions generally work better with controls created using them than with native controls.The native functions which have a UDF counterpart will convert the control id (if passed) to the handle (using GUICtrlGetHandle,) but in terms of RichEdit controls there is no native counterpart (apart from GUICtrlCreateEdit, but he's not using that) so this wouldn't work. I've spent a while looking around the UDFs since doing the help file! 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 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