Difference between revisions of "MessageDialog"

From Xojo Documentation

(Sample Code: Replaced .Icon with .IconType)
Line 47: Line 47:
 
Var d As New MessageDialog                  // declare the MessageDialog object
 
Var d As New MessageDialog                  // declare the MessageDialog object
 
Var b As MessageDialogButton                // for handling the result
 
Var b As MessageDialogButton                // for handling the result
d.Icon = MessageDialog.GraphicCaution       // display warning icon
+
d.IconType = MessageDialog.IconTypes.Caution       // display warning icon
 
d.ActionButton.Caption = "Save"
 
d.ActionButton.Caption = "Save"
 
d.CancelButton.Visible = True              // show the Cancel button
 
d.CancelButton.Visible = True              // show the Cancel button

Revision as of 19:15, 21 January 2021

Class (inherits from Object)

Used to design and display customized message dialog boxes.

Properties
ActionButton Explanation Title
AlternateActionButton IconType
CancelButton Message
Methods
ShowModal ShowModalWithin
Shared Methods
Show
Enumerations
IconTypes

Notes

A MessageDialog dialog can have up to three buttons, an icon, and main and subordinate text. On Windows and Linux, it can also have text in its title bar. By default, only the ActionButton's Visible property is True. To use any other buttons, you must set their Visible properties to True.

fa-exclamation-circle-32.png
You should avoid using MessageDialog for displaying debugging messages. The displaying of the dialog will alter event order and may give unexpected results. Instead use the Debugger, System.DebugLog or your own logging mechanism.

Icons

The four icons supported by MessageDialog are not the same on all platforms. In particular, macOS shows the generic application icon for the values of 0, 2, and 3.

Handling the Button Click

After the user has clicked a button in the MessageDialog, the ShowModal method returns the MessageDialogButton that was pressed. You need to check this against the three types of MessageDialogButtons belonging to the MessageDialog to determine which button the user clicked. See the example.

Sample Code

The following code creates and manages a Save Changes dialog box without the need to create an instance of the Window class.

Var d As New MessageDialog // declare the MessageDialog object
Var b As MessageDialogButton // for handling the result
d.IconType = MessageDialog.IconTypes.Caution // display warning icon
d.ActionButton.Caption = "Save"
d.CancelButton.Visible = True // show the Cancel button
d.AlternateActionButton.Visible = True // show the "Don't Save" button
d.AlternateActionButton.Caption = "Don't Save"
d.Message = "Do you want to save changes to this document before closing?"
d.Explanation = "If you don't save, your changes will be lost. "

b = d.ShowModal // display the dialog
Select Case b // determine which button was pressed.
Case d.ActionButton
// user pressed Save
Case d.AlternateActionButton
// user pressed Don't Save
Case d.CancelButton
// user pressed Cancel
End Select

See Also

MessageDialogButton, Window classes.