- Features of the dialog box
- Line break in the dialog box
- Application in the background: Specific case from Android 10
In french: ConfirmerAsynchrone
Displays a non-blocking message in a standard dialog box with the answers "Yes", "No", "Cancel" and calls a WLanguage procedure with the user's response.
- This is a non-blocking dialog box. The WLanguage code that follows the call to ConfirmAsynchronous continues to run. To close the window, the user must validate one of the buttons. When the user clicks one of the buttons, the code of a WLanguage procedure is run.
- In the WLanguage code following the call to the function, another modal window cannot be opened before closing the dialog box.
- WINDEV allows you to apply the skin template of your project to this dialog box. For more details, see Customizing dialog boxes.
NextTitle("Modifying the form")
ConfirmAsynchronous(Yes, "Some changes were made in the form." + CR + ...
"Do you want to save them before closing the form?", ...
INTERNAL PROCEDURE ProcessConfirmation(nResponse is int)
CASE Yes: SaveForm() // Backup process
CASE No: Close()
CASE Cancel: SetFocusAndReturnToUserInput()
ConfirmAsynchronous([<Selected button>, ] <Text> , <WLanguage procedure>)
<Selected button>: Optional integer constant
Button selected by default in the dialog box:
|Cancel||2||selected by default.|
|No||0||selected by default.|
|1||selected by default.|
<Text>: Character string
Text to display.
<WLanguage procedure>: Name of the procedure or lambda procedure
Name of the WLanguage procedure ("callback" procedure) called when the user clicks one of the buttons in the confirmation window. This procedure is used to find out which button was clicked, and to run a specific process if necessary.
For more details on this procedure, see Parameters of the procedure used by ConfirmAsynchronous.
This WLanguage procedure can correspond to:
- a name of a global or local procedure,
- a name of an internal procedure,
- a lambda procedure.
Features of the dialog box
- The message is aligned to the left.
- The text of the buttons changes according to the language used by Windows at runtime (or used by the browser, in the case of a WEBDEV site).
- The maximum number of characters cannot exceed 4096. If a larger string is passed as parameter, it will be truncated.
- The icon displayed (exclamation mark in a WINDEV application, question mark in a WEBDEV application) cannot be modified.
- The title of the dialog box corresponds to the title of the current window (or page).
To comply with the system specifications, the title of dialog box is empty by default. To define this title, use NextTitle.
- To modify or define the title of dialog box, use NextTitle.
To customize this dialog box
(and all the system dialog boxes in your application), check "Customize system windows (Info, YesNo, Confirm, Dialog)" in the "Style" tab of the project description. For more details, see Customizing dialog boxes
Line break in the dialog box
The CR string (Carriage Return) can be used to force a break to the next line. For example:
ConfirmAsynchronous("The XXX form was modified." + CR + ...
"Do you want to save it before closing?", Procedure_ConfirmAsynchronous)
You also have the ability to use the syntax of multiline strings. For example:
The XXX form has been modified.
Do you want to save changes before closing?
Application in the background: Specific case from Android 10
From Android 10, it is no longer possible to open a window when the application is in the background.
ConfirmAsynchronous can open a window. If this function is used while the application is in the background, a fatal error will occur.
- It is possible to determine if the application is in the background using InBackgroundMode.
- If an application needs to interact with the user while it is in the background, the solution is to display a notification (via the Notification type). The application will be brought back to the foreground when the notification is clicked, if the ActivateApplication property is set to True. You can also open a window from the procedure passed to the ActionClick property.
This page is also available for…