MESSAGE

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 2004 (Modifiée)


MESSAGE (message)

ParamètreTypeDescription
messageAlphaMessage à afficher

Description

La commande MESSAGE affiche message à l'écran dans une fenêtre spéciale de message qui est ouverte et refermée à chaque fois que vous l'appelez (à moins que vous ne travailliez dans une fenêtre préalablement ouverte par la commande Creer fenetre, cf. ci-dessous). Le message est temporaire et est effacé dès qu'un formulaire est affiché ou dès que l'exécution de la méthode est stoppée. Si une autre commande MESSAGE est exécutée, le précédent message est effacé.

MESSAGE est généralement utilisée pour informer l'utilisateur du déroulement d'une action.

Si une fenêtre a été ouverte par la commande Creer fenetre, tous les appels ultérieurs à la commande MESSAGE affichent les messages dans cette fenêtre. Cette fenêtre se comporte en quelque sorte comme un terminal :

Chaque message successif n'efface pas le précédent, les messages se placent les uns à la suite des autres.

Si un message est plus large que la fenêtre, 4D insère automatiquement un retour à la ligne.

Si le message contient plus de lignes que ne peut en afficher la fenêtre, 4D fait automatiquement défiler le message dans la fenêtre.

Si vous souhaitez contrôler les retours à la ligne, insérez vos propres retours chariot dans votre texte, à l'aide de Caractere(13).

Vous pouvez appeler la commande POSITION MESSAGE pour afficher le texte à un emplacement particulier dans la fenêtre.

Vous pouvez appeler la commande EFFACER FENETRE pour effacer le contenu de la fenêtre.

La fenêtre est une fenêtre d'affichage statique : son contenu n'est pas redessiné lorsque d'autres fenêtres s'affichent par-dessus.

Exemples

(1) L'exemple suivant traite une sélection d'enregistrements et appelle la commande MESSAGE pour informer l'utilisateur de la progression de l'opération :

   Boucle($vlEnregistrement;1;Enregistrements trouves([touteTable]))
      MESSAGE ("Traitement de l'enregistrement "+Chaine($vlEnregistrement))
         ` Faire quelque chose avec l'enregistrement
      ENREGISTREMENT SUIVANT([touteTable])
   Fin de boucle

La fenêtre suivante s'affiche puis disparaît à chaque appel de MESSAGE :

(2) Afin d'éliminer le "clignotement" de la fenêtre, il est préférable, comme dans ce deuxième exemple, d'afficher les messages dans une fenêtre ouverte par l'intermédiaire de la commande Creer fenetre :

   Creer fenetre(50;50;500;250;5;"Opération en cours")
   Boucle($vlEnregistrement;1;Enregistrements trouves([touteTable]))
      MESSAGE ("Traitement de l'enregistrement "+Chaine($vlEnregistrement))
         ` Faire quelque chose avec l'enregistrement
      ENREGISTREMENT SUIVANT([touteTable])
   Fin de boucle
   FERMER FENETRE

Le résultat est le suivant (sous Windows) :

(3) En ajoutant un retour chariot, vous améliorez la présentation :

   Creer fenetre(50;50;500;250;5;"Opération en cours")
   Boucle($vlEnregistrement;1;Enregistrements trouves([touteTable]))
      MESSAGE ("Traitement de l'enregistrement "+Chaine($vlEnregistrement)+Caractere(Retour chariot))
         ` Faire quelque chose avec l'enregistrement
      ENREGISTREMENT SUIVANT([touteTable])
   Fin de boucle
   FERMER FENETRE

Voici le résultat (Sous Windows) :

(4) A l'aide de la commande POSITION MESSAGE et de l'écriture de quelques lignes supplémentaires, la présentation s'améliore nettement :

   Creer fenetre(50;50;500;250;5;"Opération en cours")
   $vlNbEnregistrements:=Enregistrements trouves([touteTable])
   $vhHeureDébut:=Heure courante 
   Boucle($vlEnregistrement;1;$vlNbEnregistrements)
      POSITION MESSAGE(5;2)
      MESSAGE ("Traitement de l'enregistrement "+Chaine($vlEnregistrement)+Caractere(Retour chariot))
         ` Faire quelque chose avec les enregistrements
      ENREGISTREMENT SUIVANT([touteTable])
      POSITION MESSAGE(5;5)
      $vlReste:=(($vlNbEnregistrements/$vlEnregistrement)-1)*(Heure courante-$vhHeureDébut)
      MESSAGE ("Estimation du temps restant : "+Chaine heure($vlReste))
   Fin de boucle
   FERMER FENETRE 

Voici le résultat (sous Windows) :

Référence

Creer fenetre, EFFACER FENETRE, FERMER FENETRE, POSITION MESSAGE.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant