remin Posted November 4, 2013 Share Posted November 4, 2013 (edited) This is my function: $Form2=GUICreate("Case", 120, 215, 100, 100) $bUpper = GUICtrlCreateButton("Upper", 16, 50, 89, 25) $bLower = GUICtrlCreateButton("Lower", 16, 75, 89, 25) $bTitle = GUICtrlCreateButton("Title", 16, 100, 89, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE GUIDelete($Form2) Case allBefore WinActivate($gActiveWin) Send( "^x" ) Case $bUpper Local $Result = StringUpper(ClipGet()) Case $bLower Local $Result = StringLower(ClipGet()) Case $bTitle Local $Result = etc etc Case allAfter ClipPut($Result) Send( "^v" ) EndSwitch WEnd EndFunc All Case in above function do have the same code at the start and end of the function (see Case allBefore and Case allAfter ). Is it possible to group code like I did in above function (without the use of external functions)? Edited November 4, 2013 by remin Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 4, 2013 Moderators Share Posted November 4, 2013 remin,Something like this should do what you want:$Form2 = GUICreate("Case", 120, 215, 100, 100) $bUpper = GUICtrlCreateButton("Upper", 16, 50, 89, 25) $bLower = GUICtrlCreateButton("Lower", 16, 75, 89, 25) $bTitle = GUICtrlCreateButton("Title", 16, 100, 89, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE GUIDelete($Form2) Case $bUpper To $bTitle ; This assumes you have created all the buttons in immediate succession ; Run this now before every case WinActivate($gActiveWin) Send("^x") ; Now run the specific code for each case Switch $nMsg Case $bUpper Local $Result = StringUpper(ClipGet()) Case $bLower Local $Result = StringLower(ClipGet()) Case $bTitle Local $Result = etc etc EndSwitch ; And run this after every case ClipPut($Result) Send("^v") EndSwitch WEndDoes it? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
remin Posted November 4, 2013 Author Share Posted November 4, 2013 (edited) Does it? Yes it does. Thank you very much Hope you don't mind if I ask you one more thing about your answer... After _SendEx( "^x" ) I added this: local $tempcontrol = ClipGet() If $tempcontrol == "" Then MsgBox(0,"","Nothing Selected") EndIf to check if something has been selected. If $tempcontrol = empty I would like to go to "wend" without leaving the loop (in order to use the GUI again) (and without running the specific code for each case) Exit and ExitLoop and Return exits the loop. Is there something in autoit like GOTO wend? I can't find it in the manual. Hope I made myself clear or... did I found it? ContinueLoop? Edited November 4, 2013 by remin Link to comment Share on other sites More sharing options...
Moderators Solution Melba23 Posted November 4, 2013 Moderators Solution Share Posted November 4, 2013 remin, Is there something in autoit like GOTO wend?There certainly is! $Form2 = GUICreate("Case", 120, 215, 100, 100) $bUpper = GUICtrlCreateButton("Upper", 16, 50, 89, 25) $bLower = GUICtrlCreateButton("Lower", 16, 75, 89, 25) $bTitle = GUICtrlCreateButton("Title", 16, 100, 89, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE GUIDelete($Form2) Case $bUpper To $bTitle ; This assumes you have created all the buttons in immediate succession ; Run this now before every case WinActivate($gActiveWin) Send("^x") local $tempcontrol = ClipGet() If $tempcontrol = "" Then MsgBox(0,"","Nothing Selected") ContinueLoop ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< EndIf ; Now run the specific code for each case Switch $nMsg Case $bUpper Local $Result = StringUpper(ClipGet()) Case $bLower Local $Result = StringLower(ClipGet()) Case $bTitle Local $Result = etc etc EndSwitch ; And run this after every case ClipPut($Result) Send("^v") EndSwitch WEndM23 remin 1 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
remin Posted November 4, 2013 Author Share Posted November 4, 2013 Thank you so much for your answer. I resolved my question. 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