DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Boîtes de dialogue
  • Utilisation de la syntaxe avec assistant
  • Caractéristiques de la boîte de dialogue
  • Divers
  • Pilotage
  • Application en arrière-plan : Spécificité à partir de Android 10
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Affiche une boîte de message et renvoie la valeur du bouton cliqué par l'utilisateur.
Remarques :
  • Cette fenêtre d'avertissement est bloquante. Pour continuer l'exécution de l'application, l'utilisateur doit valider un des boutons.
    WINDEVAndroidiPhone/iPad Pour ne pas bloquer l'application, utilisez la fonction DialogueAsynchrone.
  • WINDEV WINDEV permet d'appliquer le gabarit de votre projet à cette boîte de dialogue. Pour plus de détails, consultez Personnaliser les boîtes de dialogue.
Exemple
// Attention : Cet exemple ne doit pas être copié directement.
// Le code suivant est généré par l'assistant.
SELON Dialogue("Voulez-vous enregistrer les modifications dans le fichier %1?", MaSource)
	// Oui
	CAS 1 : 
		Procédure_Sauve()
FIN
// Attention : Cet exemple ne doit pas être copié directement.
// Le code suivant est généré par l'assistant.
SI Dialogue(ChaîneConstruit("Voulez-vous enregistrer les modifications dans le fichier %1 ?", ...
		MaSource), ["Oui - Enregistrer","Non"], 1, 2, dlgIcôneQuestion) = 1 ALORS
	Procédure_Sauve()
FIN
Syntaxe

Syntaxe avec utilisation de l'assistant Masquer les détails

<Résultat> = Dialogue(<Identifiant du message> [, <Paramètre 1> [, <Paramètre N>]])
<Résultat> : Entier
Identifie la réponse sélectionnée par l'utilisateur. Cette réponse dépend du message choisi. Les différentes valeurs correspondant aux différentes réponses sont automatiquement intégrées en commentaires dans l'éditeur de code lors de la sélection du message.
<Identifiant du message> : Entier
Identifie la question posée à l'utilisateur ainsi que les différentes réponses possibles.
<Paramètre 1> : Chaîne de caractères optionnelle
Si le message choisi contient des éléments paramétrables (identifiés par %1, %2, ...), ce paramètre permet de donner la valeur voulue à l'élément paramétrable 1. Ainsi la valeur de <Paramètre 1> remplacera %1. $~ ... |
<Paramètre N> : Chaîne de caractères optionnelle
Si le message choisi contient des éléments paramétrables (identifiés par %1, %2, ...), ce paramètre permet de donner la Nième valeur voulue à l'élément paramétrable N. Ainsi la valeur de <Paramètre N> remplacera %N.

Syntaxe directe Masquer les détails

<Résultat> = Dialogue(<Question> , <Libellés des boutons> [, <Bouton par défaut> [, <Bouton d'annulation> [, <Icône>]]])
<Résultat> : Entier
Identifie la réponse sélectionnée par l'utilisateur. Cette réponse dépend du message choisi.
<Question> : Chaîne de caractères
Question posée à l'utilisateur.
<Libellés des boutons> : Tableau
Nom de la variable de type Tableau contenant les libellés des boutons.
<Bouton par défaut> : Entier
Indice du bouton sélectionné par défaut. Par défaut, ce paramètre vaut 1.
<Bouton d'annulation> : Entier
Indice du bouton d'annulation. Par défaut, ce paramètre correspond à l'indice du dernier bouton.
<Icône> : Chaîne de caractères ou constante de type Entier
Icône affichée. Ce paramètre peut correspondre :
  • au chemin du fichier correspondant à l'icône affichée.
  • à une des constantes suivantes :
    dlgIcôneErreurIcône représentant une erreur.
    dlgIcôneInfo
    (Valeur par défaut)
    Icône représentant une information.
    dlgIcôneQuestionIcône représentant une question.
Remarques

Utilisation de la syntaxe avec assistant

Pour utiliser cette syntaxe, il est nécessaire d'utiliser l'assistant proposé lors de l'écriture du nom de la fonction sous l'éditeur de code (option "<Assistant>" proposée par la saisie assistée). Cet assistant permet de saisir les différents paramètres de la boîte de dialogue qui sera utilisée. Cette fonction ne peut pas être utilisée si la fenêtre de dialogue n'est pas construite avec l'assistant.
Pour lancer l'assistant :
  1. Sous l'éditeur de code, saisissez "Dialogue(".
  2. Cliquez sur l'option "Assistant". L'assistant se lance. Passez à l'étape suivante.
  3. Choisissez une question existante ou créez une nouvelle question (option <Cliquez ici pour créer une nouvelle question>). Passez à l'étape suivante.
  4. Si vous avez choisi de créer une question, un écran apparaît. Cet écran permet de saisir les différents paramètres de la boîte de dialogue utilisée pour poser la question. Vous pouvez indiquer :
    • Le texte de la question,
    • L'image de la boîte de dialogue,
    • Les différents boutons permettant à l'utilisateur de répondre.
  5. Validez l'écran de définition de la question. Le code correspondant est automatiquement inséré dans l'éditeur de code. Appuyez à nouveau sur la touche ENTREE du clavier. Le code complet est ajouté sous l'éditeur de code. Il est possible de modifier les caractéristiques de la boîte de dialogue grâce à l'icône située à côté du texte de la question.

Caractéristiques de la boîte de dialogue

  • Le titre de la boîte de dialogue correspond au titre de la fenêtre (ou page) en cours.
    AndroidiPhone/iPad Pour respecter les spécifications du système, le titre de la boîte de dialogue est vide par défaut. Pour définir ce titre, utilisez la fonction TitreSuivant.
  • Pour modifier ou définir le titre de la boîte de dialogue, utilisez la fonction TitreSuivant.
  • WINDEVWINDEV Mobile Le gabarit du projet en cours est automatiquement appliqué à la boîte de dialogue.
    Java Pour que le gabarit du projet soit appliqué à la boîte de dialogue, il faut :
    • appliquer le gabarit aux boîtes de dialogue (option "Personnaliser les fenêtres système (Info, OuiNon, Confirmer, Dialogue)" dans l'onglet "Style" de la fenêtre de description du projet).
    • que la fenêtre "WinDevMessageBox" soit présente dans le projet.
  • Android Les caractéristiques de la boîte de dialogue sont les suivantes :
    • La boîte de dialogue affichée est au look système.
    • La boîte de dialogue ne doit pas contenir plus de 3 boutons. Les boutons supplémentaires ne seront pas affichés.
    • La position des boutons est dépendante de la version de Android. A partir de la version 4.1 de Android, le bouton de validation est à droite. Pour modifier l'ordre des boutons, affichez l'assistant d'édition d'une question et décochez l'option "Utiliser l'ordre défini par le système pour les boutons validation/annulation".
  • iPhone/iPad La boîte de dialogue affichée est une boîte de dialogue native iPhone/iPad.
WINDEV Pour personnaliser cette boîte de dialogue (ainsi que toutes les boîtes de dialogue système de votre application), cochez l'option "Personnaliser les fenêtres système (Info, OuiNon, Confirmer, Dialogue)" dans l'onglet "Style" de la description du projet. Pour plus de détails, consultez Personnaliser les boîtes de dialogue.

Divers

  • WINDEVJava La fonction DélaiAvantFermeture limite le temps d'affichage du message. La boîte de dialogue est automatiquement fermée. Pour les boîtes de question ou de confirmation, la réponse attendue correspond au bouton par défaut.
  • WINDEVAndroidJava Pour permettre à l'utilisateur de saisir une valeur dans une boîte de dialogue, utilisez la fonction Saisie.
  • iPhone/iPad Cette fonction ne doit pas être utilisée :
    • dans l'événement "Modification de la taille" des fenêtres. Dans le cas contraire, l'application sera bloquée.
    • dans l'événement "Changement d'orientation" des fenêtres.
    • dans l'événement "Mise au premier-plan" associé au projet.
      Remarque : La fonction peut par contre être utilisée dans l'événement "Mise au premier plan" d'une fenêtre.
    • dans un thread.
  • WEBDEV - Code Serveur Cas particuliers :
    • Si votre projet utilise les sessions prélancées, cette fonction ne doit pas être utilisée dans l'événement "Initialisation" du projet. Cette fonction doit être utilisée dans l'événement "Initialisation lors d'une connexion à une session prélancée".
    • Cette fonction ne doit pas être utilisée dans une tâche planifiée WEBDEV.
WINDEV

Pilotage

Il est possible de piloter une boîte de dialogue à l'aide de la fonction PiloteDialogue.
Android

Application en arrière-plan : Spécificité à partir de Android 10

A partir de Android 10, il n'est plus possible d'ouvrir une fenêtre lorsque l'application est en arrière-plan.
La fonction Dialogue peut provoquer l'ouverture d'une fenêtre. Si cette fonction est utilisée alors que l'application est en arrière-plan, une erreur fatale sera générée.
Conseils :
  • Il est possible de savoir si l'application est en arrière-plan grâce à la fonction EnModeArrièrePlan.
  • Si une application a besoin d'interagir avec l'utilisateur alors qu'elle se trouve en arrière-plan, la solution consiste à afficher une notification (via le type Notification). Lors du clic sur la notification, l'application sera remise au premier plan si la propriété ActiveApplication est à Vrai. Il est également possible d'ouvrir une fenêtre depuis la procédure passée à la propriété ActionClic.
Classification Métier / UI : Code UI
Composante : wd300obj.dll
Version minimum requise
  • Version 10
Documentation également disponible pour…
Commentaires
Fermeture par la case de fermeture de la fenêtre
En utilisant Dialogue sans assistant, on arrive à sélectionner par défaut annulation. Quitter par la croix vaut également annulation.
En multilingue, c'est par contre gênant pour traduire.
Dialogue("Supprimer ?",["Ok","Annuler"],2,2,dlgIcôneQuestion)
1er '2' = bouton défaut
2e '2' = bouton annulation
On peut aussi en profiter pour utiliser 'gPolice', ce qui n'est pas possible avec l'assistant
Dialogue(gPoliceTaille(12) + "Supprimer ?",["Ok","Annuler"],2,2,dlgIcôneQuestion)
NadSoftware
05 oct. 2022
Dialogue sous iOS
Cette fonction ne pas être utilisée également dans l'évènement "Fermeture de la fenêtre". Dans le cas contraire l'application sera bloquée.
Nathan RENAULT
08 sep. 2022
Fermeture par la case de fermeture de la fenêtre
Cliquer sur la case de fermeture de la fenêtre correspond au bouton "Annulation". Attention donc de bien respecter le choix de ce bouton. en particulier, lorsque l'on désire que le choix par défaut soit "Annuler" pour ne pas risquer un fausse manœuvre de l'utilisateur, il n'est pas possible de mettre le bouton "Annuler" en validation par défaut.
Arbos
20 déc. 2019

Dernière modification : 16/09/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale