DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Boîtes de dialogue
  • Caractéristiques de la boîte de dialogue et du champ de saisie
  • Gestion des masques de saisie
  • Saisie de texte multiligne
  • Saisie par l'intermédiaire d'une case à cocher
  • Base de messages
  • Limites
  • Exemple de saisie complète
  • Application en arrière-plan : Spécificité à partir de Android 10
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Affiche un message en permettant à l'utilisateur de saisir une information.
Fonction Saisie
Remarque : Plusieurs syntaxes sont disponibles pour cette fonction :
  • Syntaxe simplifiée, saisie directement sous l'éditeur de code.
  • Syntaxe complète avec saisie de la question grâce à un assistant. L'éditeur de code propose un assistant complet (option "<Assistant>" proposée par la saisie assistée). Cet assistant permet de définir les différents éléments apparaissant dans le message, et génère automatiquement le code correspondant. Le libellé des boutons est automatiquement proposé en fonction du texte de la question.
  • Syntaxe directe, saisie directement sous l'éditeur de code.
Exemple
// Exemple de saisie simplifiée 
NbExemplaire est un entier
RetourValeur est un entier
RetourValeur = Saisie("Combien d'exemplaires voulez-vous imprimer ?", NbExemplaire)
SELON RetourValeur 
	CAS 0 : Info("Vous avez annulé. Le nombre par défaut est de 1.")
	CAS 1 : Info("Vous avez demandé " + NbExemplaire)
FIN
// Saisie simplifiée avec utilisation d'un masque de saisie 
NumTel est une chaîne
// Utilisation d'un masque de saisie texte spécifique
Saisie.MasqueSaisie = maskTelFrance
SELON Saisie("Quel est votre numéro de téléphone ?", NumTel)
	// OK
	CAS 1 : SAI_NumTel = NumTel 
	// Annuler
	CAS 0 : SAI_NumTel = "Pas de téléphone"
FIN
Commentaires est une chaîne
Commentaires = Répète(RC, 10)
// Saisie de commentaires par l'utilisateur dans un champ multiligne 
// Saisie limitée à 140 caractères
Saisie.MasqueSaisie = "regexp:.{0,140}"
SELON Saisie("Saisissez vos commentaires.", Commentaires)
	// OK
	CAS 1 : SAI_Comment = Commentaires
	// Annuler
	CAS 0 : SAI_Comment = "Pas de commentaire"
FIN
AfficherInfo est un booléen = Faux
// On demande à l'utilisateur s'il veut réellement fermer l'application 
// Une coche "Ne plus afficher cette fenêtre" permet à l'utilisateur
// de ne plus afficher cette question à l'avenir
Saisie.LibelléOptionnel = "Ne plus afficher cette fenêtre"
SI AfficherInfo = Faux ALORS
	SELON Saisie("Voulez-vous fermer l'application ?", AfficherInfo)
		// Fermer
		CAS 1 : Ferme()
	FIN
FIN
// Pensez à stocker la valeur de AfficherInfo pour les prochaines fois
// Syntaxe directe 
NumTel est une chaîne
SI Saisie("Quel est votre numéro de téléphone?", NumTel, ...
		["Valider", "Pas de téléphone", "Annuler"], 3, 3, dlgIcôneQuestion) = 1 ALORS
	Info(NumTel)
FIN
Syntaxe

Syntaxe simplifiée (sans utiliser l'assistant) Masquer les détails

<Résultat> = Saisie(<Question> , <Variable à saisir>)
<Résultat> : Entier
Identifie la réponse sélectionnée par l'utilisateur :
  • 0 : l'utilisateur a cliqué sur le bouton "Annuler".
  • 1 : l'utilisateur a cliqué sur le bouton "OK".
<Question> : Chaîne de caractères
Question à poser à l'utilisateur. Cette question peut utiliser la fonction ChaîneConstruit.
<Variable à saisir> : Tout type
Variable dans laquelle l'utilisateur doit saisir sa réponse.
  • Cette variable doit avoir été déclarée avant l'appel de la fonction Saisie.
  • Le type de la variable définit le type du champ dans lequel l'utilisateur saisit sa réponse. Pour les variables de type Heure ou Date, le masque de saisie est automatiquement déduit de la variable.
    AndroidiPhone/iPad Il est possible de spécifier un masque de saisie spécifique (notamment pour les variables de type Texte) grâce à la variable Saisie.MasqueSaisie (voir Remarques).
  • Si la variable est initialisée avec une valeur, cette valeur correspond à la valeur proposée par défaut.
  • Après l'utilisation de la fonction Saisie, cette variable contient la réponse de l'utilisateur (quel que soit le bouton utilisé).

Syntaxe complète avec saisie de la question avec l'assistant Masquer les détails

<Résultat> = Saisie(<Question> , <Variable à saisir> [, <Paramètre 1> [... [, <Paramètre N>]]])
<Résultat> : Entier
Identifie la réponse sélectionnée par l'utilisateur (valeur de 1 à le nombre de boutons dans la fenêtre de saisie).
Cette réponse dépend du nombre de boutons présents dans la fenêtre de description de la question. 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.
<Question> : Chaîne de caractères
Question à poser à l'utilisateur. Cette question peut contenir des paramètres identifiés par %1, %2, ...
<Variable à saisir> : Tout type
Variable dans laquelle l'utilisateur doit saisir sa réponse.
  • Cette variable doit avoir été déclarée avant l'appel de la fonction Saisie.
  • Le type de la variable définit le type du champ dans lequel l'utilisateur saisit sa réponse. Pour les variables de type Heure ou Date, le masque de saisie est automatiquement déduit de la variable.
    AndroidiPhone/iPad Il est possible de spécifier un masque de saisie spécifique (notamment pour les variables de type Texte) grâce à la variable Saisie.MasqueSaisie (voir Remarques).
  • Si la variable est initialisée avec une valeur, cette valeur correspond à la valeur proposée par défaut.
  • Après l'utilisation de la fonction Saisie, cette variable contient la réponse de l'utilisateur (quel que soit le bouton utilisé).
<Paramètre 1> : Chaîne de caractères
Si la question contient des éléments paramétrables (identifiés par %1, %2, ...), ce paramètre permet de donner la valeur voulue. Ainsi <Paramètre 1> remplacera %1.
<Paramètre N> : Chaîne de caractères
Si le message choisi contient des éléments paramétrables (identifiés par %1, %2, ...), ce paramètre permet de donner la valeur voulue. Ainsi <Paramètre 2> remplacera %2.

Syntaxe directe Masquer les détails

<Résultat> = Saisie(<Question> , <Variable à saisir> , <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.
<Variable à saisir> : Tout type
Variable dans laquelle l'utilisateur doit saisir sa réponse.
  • Cette variable doit avoir été déclarée avant l'appel de la fonction Saisie.
  • Le type de la variable définit le type du champ dans lequel l'utilisateur saisit sa réponse. Pour les variables de type Heure ou Date, le masque de saisie est automatiquement déduit de la variable.
    AndroidiPhone/iPad Il est possible de spécifier un masque de saisie spécifique (notamment pour les variables de type Texte) grâce à la variable Saisie.MasqueSaisie (voir Remarques).
  • Si la variable est initialisée avec une valeur, cette valeur correspond à la valeur proposée par défaut.
  • Après l'utilisation de la fonction Saisie, cette variable contient la réponse de l'utilisateur (quel que soit le bouton utilisé).
<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ôneInfoIcône représentant une information.
    dlgIcôneQuestion
    (Valeur par défaut)
    Icône représentant une question.
Remarques

Caractéristiques de la boîte de dialogue et du champ de saisie

  • 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.
  • Le gabarit du projet en cours est automatiquement appliqué à la boîte de dialogue.
    Android Le gabarit de l'application n'est pas appliqué sur la fenêtre de saisie.
  • AndroidiPhone/iPad Pour modifier les caractéristiques du champ de saisie (par exemple, modifier le cadrage ou remplacer les caractères saisis dans le champ par des astérisques), affichez l'assistant d'édition de la question (icône Saisie dans la syntaxe de la fonction Saisie) et cliquez sur l'icône Edition des paramètres de Saisie.
AndroidiPhone/iPad

Gestion des masques de saisie

Par défaut, le masque de saisie utilisé est déterminé automatiquement à partir des informations d'internalisation du projet.
Cependant, il est possible de modifier le masque de saisie utilisé grâce à la variable Saisie.MasqueSaisie.
Cette variable peut prendre pour valeur une des constantes suivantes :
maskAAlphaNumLettre, puis lettres + chiffres
maskAAlphaNumMajusLettre en majuscule, puis lettres en majuscules + chiffres
maskAlphaLettres
maskAlphaMajusLettres en majuscules
maskAlphaNumLettres + chiffres
maskAlphaNumMajusLettres en majuscules + chiffres
maskAucunPas de masque de saisie
maskEMailAdresse email
maskFichierSansRepNom de fichier (sans ses répertoires)
maskINSEENuméro INSEE
maskINSEECléNuméro INSEE + clé
maskMajusTout en majuscules
maskMinusTout en minuscules
maskNomFicNom et chemin de fichier
maskNumChiffres
maskNumPlusChiffres, '+', ' ', '.', '-', ','
maskPatronymeLettres + Chiffres + Espace + Apostrophe + Tiret
maskPatronymeMajuscule Lettres Majuscules +Chiffres + Espace + Apostrophe + Tiret
maskPMajusPremière lettre en majuscule
maskTailleFichierMasque numérique pour les tailles de fichier et de disque
maskTelNuméro de téléphone
maskTelFranceNuméro de téléphone au format français

Il est également possible d'attribuer une expression régulière comme masque de saisie. Pour plus de détails, consultez l'aide de la propriété ..MasqueSaisie.

Saisie de texte multiligne

Si le paramètre <Variable à saisir> est initialisé avec une chaîne de caractères contenant des RC, alors la saisie dans le champ associé sera multiligne.

Saisie par l'intermédiaire d'une case à cocher

Si la variable est de type booléen, dans ce cas, la saisie est réalisée dans une case à cocher. Le libellé de la case à cocher est déterminé grâce à la variable Saisie.LibelléOptionnel.

Base de messages

Lors de la création d'un message, ce message est automatiquement ajouté à la base de messages.
Par défaut, la base de messages est présente dans le répertoire "Personal\Message" de WINDEV, WEBDEV et WINDEV Mobile. Ce répertoire peut être modifié dans les options de WINDEV/WEBDEV/WINDEV Mobile :
  • Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Options" et sélectionnez "Options générales de WINDEV/WEBDEV/WINDEV Mobile".
  • Affichez l'onglet "Répertoire".
Pour plus de détails sur la base de messages, consultez l'assistant de saisie d'une question.
AndroidiPhone/iPad

Limites

  • Android Le gabarit de l'application n'est pas appliqué sur la fenêtre de saisie.
  • La variable à saisir ne peut pas être initialisée avec des RC. Le champ de saisie restera monoligne.
    iPhone/iPad Il n'est pas possible d'utiliser un champ de saisie multiligne.
  • Android Si la variable saisie est de type Booléen, la saisie sera effectuée dans un champ de saisie (et non dans un interrupteur comme avec WINDEV).
  • Android Le masque de saisie n'est pas géré.
  • 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.

Exemple de saisie complète

  1. Saisie de la question sous l'éditeur :
    Saisie de la question
  2. Code généré automatiquement (seule la variable "Destinataire" a été saisie sous l'éditeur de code) :
Destinataire est une chaîne
//1 : Créer une relance
//0 : Ne pas créer de relance
//1 : OK 
SELON Saisie("Vous devez indiquer un destinataire.", Destinataire)
	// Valider le destinataire
	CAS 1

	// Afficher la liste
	CAS 2

	// Annuler
	CAS 3

FIN
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 Saisie 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
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 01/07/2024

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