Jump to content

Extended Message Box - New Version: 16 Feb 24


Melba23
 Share

Recommended Posts

  • Moderators

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 by Melba23
Beta code removed

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

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

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)

dialog.png

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 by xrxca
By far, the worst four letter word (swear word) out there has to be USER
Link to comment
Share on other sites

  • Moderators

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 by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • 2 weeks later...
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 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

  • Moderators

xrxca,

Great - I will release a new version this weekend.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • Moderators

[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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

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

  • Moderators

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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • 4 months later...

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. :D

One issue (change request? o:) ) 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. :blink:

Link to comment
Share on other sites

  • Moderators

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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

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

  • Moderators

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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • Moderators

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 by Melba23
Beta code removed

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • 4 weeks later...
  • Moderators

GordonShumway,

Great! I will release a new version soon.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • Moderators

[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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

  • 2 weeks later...

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 by Melba23
Added code tags
Link to comment
Share on other sites

  • Moderators

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.

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

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

  • Melba23 changed the title to Extended Message Box - New Version: 16 Feb 24

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...