Jump to content

_Confirm UDF - Simple MsgBox Wrapper


ResNullius
 Share

Recommended Posts

I was digging through some old scraps of Foxpro code and found a snippet that I used to use all the time.

The idea isn't by any means original with me, but I did a quick search of the forums, didn't find anything quite like it, and thought others might find it useful.

The code should be self explanatory, but basically it allows you to write simple Yes/No msgboxes and receive back a true/false response.

The only required parameter is the text to display as a prompt.

You can specify a title, but if you don't, it will use the script name minus the extension.

I know the syntax is not the same as the standard msgbox (the title comes after the text instead of the other way around), but it makes it really easy to write a quick If _Confirm("Are you sure you want to do that") then ... kind of thing. Small sample included.

If _Confirm("Continue the process?") Then
    ;put affirmative Stuff here
    MsgBox(0, "YES", "Smart Choice")
Else
    ;put Non-affirmative Stuff here
    MsgBox(0, "NO", "OK,  your loss!")
EndIf


Func _Confirm($sText, $sTitle = @ScriptName)
    If Not IsDeclared("IDYES") Then Dim $IDYES = 6
    If Not IsDeclared("MB_ICONQUESTION") Then Dim $MB_ICONQUESTION = 32
    If Not IsDeclared("MB_YESNO") Then Dim $MB_YESNO = 4
    If $sTitle = @ScriptName Then $sTitle = StringTrimRight($sTitle, StringLen($sTitle) - StringInStr($sTitle, ".", -1) + 1)
    $lResponse = MsgBox($MB_ICONQUESTION + $MB_YESNO, $sTitle, $sText)
    Return $lResponse = $IDYES
EndFunc   ;==>_Confirm

Pretty bad when the preamble is longer than the code, huh? :)

Link to comment
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
 Share

  • Recently Browsing   0 members

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