Moderators Melba23 Posted August 31, 2017 Author Moderators Share Posted August 31, 2017 (edited) xrxca, You seem to have changed your opinion (and most certainly your tone) a bit since you last posted in the thread..... Taking your points in order: 1: Using "Space" to return the default button regardless of focus was a "design decision" - and the expected behaviour is clearly documented in the _ExtMsgBox function header: ; Pressing Enter or Space fires default button However, as you now seem to consider this is "wrong and very dangerous", I have added an option to the $iStyle parameter of _ExtMsgBoxSet which will disable this behaviour - the header now reads: _ExtMsgBoxSet ; Parameters ....: $iStyle -> 0 (Default) - Taskbar Button, TOPMOST, button in user font, no tab expansion, ; no checkbox, titlebar icon, active closure [X] and SysMenu close, Space fires ; default button ; Combine following to change: [...] ; 128 = Space does not fire default button _ExtMsgBox ; Pressing Space will fire default button unless $iStyle value in _ExtMsgBoxSet prevents it 2: It makes sense that any default button has focus when the dialog appears so I have changed the code to do that. 3: Using "&" to denote the default button was another "design decision" - I never use the keyboard shortcuts to action items so I did not consider this requirement at the time I wrote the UDF. But I accept that it does interfere with the Windows standard behaviour, so I have changed the required character to "@". If you consider this to be similarly unacceptable, then please suggest another character which you consider would be suitable to denote the default button. 4: I do not believe that a single line of text has never been vertically centred on the icon in any version of the UDF. Here then is a modified version of the UDF to test, which I trust has gone some way to satisfying your requirements - I look forward to your (or anyone else's) comments: <snip> Finally, if after testing this new version you still consider that this UDF is seriously flawed, then please feel free to use my code as the basis for your own UDF which does exactly as you wish. M23 Edited September 10, 2017 by Melba23 Beta code removed 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...
iamtheky Posted August 31, 2017 Share Posted August 31, 2017 6 hours ago, Melba23 said: then please feel free to use my code as the basis for your own UDF which does exactly as you wish. You can try, but it wont be sexier than mine. Cant believe that was gd 6.5 years ago. ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
xrxca Posted September 1, 2017 Share Posted September 1, 2017 (edited) On 8/31/2017 at 3:02 AM, Melba23 said: xrxca, You seem to have changed your opinion (and most certainly your tone) a bit since you last posted in the thread..... Didn't mean to seem nasty, Had just finished restoring backups after one of my programmers had managed to fry two days worth of work by using the space bar on the Archive instead of the (Default) Merge button in one of our maintenance scripts merging the wrong tree. We have very good backups so were able to get back to an hour before the error so not life and death, and yes the script could have extra prompts, but it hasn't come up before, She has a broken wrist and is doing everything mouseless at the moment, was waiting by my office door in an absolute panic because she'd discovered what she'd done and was positive she'd hit the right button, and she also pointed out that there were no hot keys in our dialogs so we tried to add them... Thank you for the default button being selected change, the Tab once to get to it was what was driving me nuts on other stuff, and the above brought things to a head. I'm pretty sure that with this change, the entire space bar thing is moot. As windows will fire a selected button automatically when the space bar is pressed. (I remmed out the hotkey code and it works as expected (and the 128 didn't (no dialog at all)) I like the @ (I'd already made the change but using "~"), the only comment I would make is could @@ display as a single @ sign instead of being interpreted as the default flag, it complicates the regular expressions and some of the button creation code, but not an awful lot. So you could have "&Print|@&Email to joe@@add.r|&Cancel" being able to handle "@@King|@Joe" and "@@@Hello|Joe" would be the complicated part. Did you mean "never" or "ever" in #4? Most our scripts don't use an icon so I only noticed it when testing. This is what I get. This is on a clean Win10 with only the latest v3.3.14.0 AutoIt installed, and three files, ExtMsgBox_Mod.au3, StringSize.au3, and Junk1.au3 (test script) The Code in Junk1.au3 was: #include "ExtMsgBox_Mod.au3" $Result = _ExtMsgBox(64, '&Yes|@Can&dy|&Cancel', 'Example', 'Text NOT Centered On Icon') ConsoleWrite('Result: ' & $Result & @CRLF) Edited September 1, 2017 by xrxca By far, the worst four letter word (swear word) out there has to be USER Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 2, 2017 Author Moderators Share Posted September 2, 2017 (edited) xrxca, Quote Didn't mean to seem nasty Your rather tetchy tone is now quite understandable given the events that engendered the request for changes to the UDF - no offence taken. I did wonder if the change highlighting the default button on initial appearance would make the other changes moot. I think I will do as you have already done - remove all of the code related to the [Space] key and let Windows do its normal thing. Good point about "@" being used in email addresses - "~" does seem a better choice as I have no wish to rework all the RegExes (they took long enough to get working in the first place)! The word in point 4 should read "ever" - I rewrote that section several times and missed the double negative I produced, sorry. What you posted is what I get and I think has always been the case. I am certainly not changing the code to get a single line centred - so it will be like that from now on! M23 Edit: Here is the new Beta - does it work for you? Edited September 27, 2017 by Melba23 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...
xrxca Posted September 15, 2017 Share Posted September 15, 2017 (edited) On 9/2/2017 at 4:44 AM, Melba23 said: Edit: Here is the new Beta - does it work for you? ExtMsgBox_Mod.au3 Yep, does the trick thank you, we've now added hot-keys where necessary and recompiled all our various utility scripts. I've thrown the double character regular expression question at our RE guru just to see what she comes up with... (when she has spare time which is a rare and precious thing theses days) (I'd have answered sooner, but spent the last two weeks at a remote client site with only satphone for communications) Edited September 15, 2017 by xrxca typo By far, the worst four letter word (swear word) out there has to be USER Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 15, 2017 Author Moderators Share Posted September 15, 2017 xrxca, Great - I will release a new version this weekend. 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...
Moderators Melba23 Posted September 20, 2017 Author Moderators Share Posted September 20, 2017 [NEW VERSION] 20 Sep 17 Changed: I was recently taken to task because the ExtMsgBox dialog did not meet normal Windows standards - in particular which button was fired when pressing [SPACE] and for preventing the use of keyboard shortcuts by hijacking the "&" character to define the default button. So there are a couple of possibly script-breaking changes in the behaviour/coding of this latest version: Pressing the [SPACE] key will now fire the selected button and not the default button as previously. However, the default button will be automatically focused so an immediate pressing of the [SPACE] key when the dialog appears will have the same effect as before. The default character for determining a default button within the dialog is now "~" - but this can be changed if required by using a new parameter in _ExtMsgBoxSet. My apologies for these possibly script breaking changes, but given the problems caused by the non-standard previous behaviour of the UDF (see a few posts above) it seemed that adjusting the UDF to follow normal Windows behaviour was a sensible move. New UDF and examples in the first post. M23 coffeeturtle 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...
joseLB Posted September 24, 2017 Share Posted September 24, 2017 On 29/01/2010 at 2:51 PM, Melba23 said: Hi Melba, great add-on, as always... why it´s not in au3 distribution? (or it is?) At your zip, first example has a wrong include. I fixed it for #include "ExtMsgBox.au3" and is ok now. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 24, 2017 Author Moderators Share Posted September 24, 2017 joseLB, Glad you like the UDF. This is not a standard include file - we have enough to do looking after the ones that are already there without adding too many more! Thanks for the heads-up about the include error in the example - a hang-over from testing! I have re-uploaded the zip. M23 coffeeturtle 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...
GordonShumway Posted February 22, 2018 Share Posted February 22, 2018 Thank you Melba23 for this new version. I had some troubles with the old version, whereas I sometimes had to hit multiple arrow-keys to go to another button. But the new version is working very nicely. One issue (change request? ) though; if the _ExtMsgBox-statement does not contain a fixed Timeout-delay-value, but rather a variable like $TimeoutCounter, the emb only works fine as long as $TimeoutCounter is positive. If - for instance in a loop - the counter reaches below +1 the statement fails ("Returns -1 and sets @error as follows: 1 - Icon error"). To me, the behaviour of the standard MsgBox ("The default is 0, which is no timeout.") seems more logical. Why not simply accept a zero-or-lower Timeout-delay-value (in which case there is no timeour and no error)?! My "50 cents": why not complete loose the "$vIcon -> Icon to use: 128" altogether and let the Timeout-delay-value decide to show (or not when it is <= 1) the countdown. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 25, 2018 Author Moderators Share Posted February 25, 2018 GordonShumway, Glad you like the UDF. I see the problem with the $iTimeOut parameter value. I could argue that it is the coder's responsibility to use valid values - but I will add an additional check of the $iTimeOut parameter to deal with negative values. Returning an error when $iTimeOut is 0 and the $vIcon parameter is set for a numeric timeout display was deliberate as there would be no countdown values to display - however, I see your point about defaulting to no icon at all in this case and I will look into how it might be coded. As to your suggestion of removing the 128 icon value completely - this would force the EMB to display the countdown for every positive $iTimeOut value. At present the coder can decide whether or not to display the numeric countdown - and that is how I intended the UDF to function. I will work on the changes over the next few days. 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...
iamtheky Posted February 25, 2018 Share Posted February 25, 2018 will you test a version that has zero checks of the parameters -vs- this latest with it's one bajillionth safety net added? larger existential question being.....are there UDFs where the penalties in self-imposed checks are measurable and an unsafe version might have a reasonable use case with sanitized input? ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 25, 2018 Author Moderators Share Posted February 25, 2018 iamtheky, A very interesting point - and one I think is certainly worth a thread of its own in "Developer General Discussion". My personal view is that as AutoIt should make life easier for the less-experienced coder, we should have a fair amount of parameter error-checking to help them out as much as possible - as long as that does not impact too much on the UDF performance. Given the overall "speed" of AutoIt, I feel that an initial check for "sensible" parameter values is a sensible addition for UDF authors to make. In this particular case I was not expecting a negative value to be used for the timeout as it makes no sense whatsoever to do so - but a single If statement is not that onerous to add as a safety net. 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...
Moderators Melba23 Posted February 25, 2018 Author Moderators Share Posted February 25, 2018 (edited) GordonShumway, Try this Beta version and see if it meets your use case Negative values for timeouts are automatically set to 0 = no timeout Numeric countdown request in $vIcon, but no timeout = no icon and no error M23 Edited June 1, 2020 by Melba23 Beta code removed 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...
GordonShumway Posted March 22, 2018 Share Posted March 22, 2018 Thank you Melba23 I'm very happy with your modifications/improvements And I have secretly renamed your "ExtMsgBox_Test.au3" to "ExtMsgBox.au3" mLipok 1 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted March 22, 2018 Author Moderators Share Posted March 22, 2018 GordonShumway, Great! I will release a new version soon. M23 coffeeturtle 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...
Moderators Melba23 Posted March 22, 2018 Author Moderators Share Posted March 22, 2018 [NEW VERSION] 22 Mar 18 Changed: Negative values for timeouts are automatically set to 0 = no timeout Numeric countdown request in $vIcon, but no timeout = no icon and no error New UDF and examples in the first post. M23 coffeeturtle 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...
Monooboe Posted March 31, 2018 Share Posted March 31, 2018 (edited) Hi Melba23, I like your script and use for all my Msgbox. This is one of my Messagebox. I want to add tooltips for buttons in your script. _ExtMsgBoxSet(32 + 64, 2, 0x004080, 0xFFFF00, 10, "Comic Sans MS") $sMsg = "message for text body" $iRetValue = _ExtMsgBox($EMB_ICONEXCLAM, "&Continue|&Skip|E&xit", " click 'Continue' to save current file!| click 'Skip' saving!| click 'Exit' to Quit!", "Ready to complete", $sMsg, 0, $emXPos, $emYPos) I modified in those areas. Is it correct way ? Func _ExtMsgBox($vIcon, $vButton, $vTip, $sTitle, $sText, $iTimeOut = 0, $hWin = "", $iVPos = 0, $bMain = True) ; Set default tooltip values Local $aTip_Text[1] = [0] ; Split button tip into individual strings $aTip_Text = StringSplit($vTip, "|") ; Set default values Local $aButton_Text[1] = [0] Local $iButton_Width_Req = 0 ; Draw button $aButtonCID[$i + 1] = GUICtrlCreateButton($aButton_Text[$i + 1], $iButton_Xpos + ($i * ($iButton_Width + 10)), $iMsg_Height - 35, $iButton_Width, 25, $iDef_Button_Style) ;Add GUICtrlTip GUICtrlSetTip($aButtonCID[$i + 1], $aTip_Text[$i + 1]) I also wants to save last position of Message Box in INI file and added following. ;remember last position GUIRegisterMsg(0x03, "LASTPOST") ; Show GUI GUISetState(@SW_SHOW, $hMsgGUI) following function is in my main program. Func LASTPOST($hWnd, $nMsg, $wParam, $lParam) Local $aWPos = WinGetPos($hWnd) If IsArray($aWPos) Then IniWrite($Config, 'LPEXMSG', 'XPOS', $aWPos[0]) IniWrite($Config, 'LPEXMSG', 'YPOS', $aWPos[1]) $emXPos = $aWPos[0] $emYPos = $aWPos[1] EndIf Return EndFunc I'm new in programming and Autoit. please advice. thanks Monooboe Edited April 1, 2018 by Melba23 Added code tags Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted April 1, 2018 Author Moderators Share Posted April 1, 2018 Monooboe, For the ToolTips that looks like a very sensible way to do things. I would add some error-checking to make sure that the number of ToolTips matched the number of buttons or you could end up with an error when you try to read a ToolTip that does not exist. As to saving the last position, why make it so complicated? You know the position of the EMB when you create it, so why not write the ini at that point rather than using a Windows message? M23 P.S. When you post code please use Code tags - see here how to do it. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. 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...
Monooboe Posted April 1, 2018 Share Posted April 1, 2018 Melba32, thanks for you tips. Initial position of EMB was read from INI file. EMB may be moved per preference ( top or bottom of screen) and wants to save new position to INI file . Can you tell me how to trigger recent position of EMB instead of "GUIRegisterMsg" after moved from previous position? ;remember last position GUIRegisterMsg(0x03, "LASTPOST") thanks again Monooboe 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