4D v16.3

APPELER FORMULAIRE

Accueil

 
4D v16.3
APPELER FORMULAIRE

APPELER FORMULAIRE 


 

APPELER FORMULAIRE ( fenêtre ; méthode {; param}{; param2 ; ... ; paramN} ) 
Paramètre Type   Description
fenêtre  RefFen in Numéro de référence de la fenêtre
méthode  Texte in Nom de la méthode projet à appeler
param  in Paramètre(s) passé(s) à la méthode

La commande APPELER FORMULAIRE exécute la méthode projet dont le nom est passé dans méthode avec un ou plusieurs param(s) optionnel(s) dans le contexte d'un formulaire affiché dans la fenêtre, indépendamment du process auquel appartient la fenêtre.

Tout comme dans la communication interprocess basée sur les workers (voir A propos des workers), une boîte aux lettres est associée à chaque fenêtre et peut être utilisée lorsque la fenêtre affiche un formulaire (après l'événement Sur chargement). APPELER FORMULAIRE encapsule le nom de la méthode et ses arguments dans un message envoyé dans la boîte aux lettres de la fenêtre. Le formulaire exécute alors le message dans son propre process. Le process appelant peut être coopératif ou préemptif, par conséquent cette fonctionnalité permet à un process préemptif d'échanger des informations avec des formulaires.

Dans fenêtre, passez le numéro de référence de la fenêtre affichant le formulaire appelé.

Dans méthode, passez le nom de la méthode projet qui doit être exécutée dans le contexte du process parent de la fenêtre.

Vous pouvez aussi passer des paramètres à la méthode en utilisant un ou plusieurs paramètres param. Vous passez les paramètres de la même façon que vous les passeriez à une sous-routine (voir la section Passer des paramètres aux méthodes). Lors de l'exécution dans le contexte du formulaire, la méthode reçoit les valeurs des paramètres dans $1, $2, et ainsi de suite. N'oubliez pas que des tableaux ne peuvent pas être passés en paramètre d'une méthode. En outre, dans le contexte de la commande APPELER FORMULAIRE, les points suivants doivent être pris en compte :

  • Les pointeurs sur les tables et les champs sont autorisés.
  • Les pointeurs sur les variables, en particulier les variables locales ou process, ne sont pas recommandés car ces variables peuvent être indéfinies au moment où la méthode du process tente d'y accéder.
  • Si vous passez un paramètre de type Objet, 4D crée une copie de l'objet dans le process de destination si le formulaire est dans un process différent de celui appelant la commande APPELER FORMULAIRE.

Vous voulez ouvrir deux fenêtres de dialogue à partir d'un même formulaire, mais avec des couleurs de fonds différentes et des messages différents. Vous souhaitez également envoyer des messages par la suite et les afficher dans chaque fenêtre de dialogue.

Dans le formulaire principal, un bouton ouvre les deux dialogues :

  //Méthode objet pour créer les formulaires
  //Première fenêtre
 formRef1:=Creer fenetre formulaire("FormMessage";Form fenêtre palette;A gauche)
 CHANGER TITRE FENETRE("MyForm1";formRef1)
 DIALOGUE("FormMessage";*)
 AFFICHER FENETRE(formRef1)
 
  //Seconde fenêtre
 formRef2:=Creer fenetre formulaire("FormMessage";Form fenêtre palette;A gauche+500)
 CHANGER TITRE FENETRE("MyForm2";formRef2)
 DIALOGUE("FormMessage";*)
 AFFICHER FENETRE(formRef2)
 
  //Envoi des couleurs
 APPELER FORMULAIRE(formRef1;"doSetColor";0x00E6F2FF)
 APPELER FORMULAIRE(formRef2;"doSetColor";0x00F2E6FF)
  //Création des messages
 APPELER FORMULAIRE(formRef1;"doAddMessage";Nom du process courant;"Hello Form 1")
 APPELER FORMULAIRE(formRef2;"doAddMessage";Nom du process courant;"Hello Form 2")

La méthode doAddMessage ajoute simplement une ligne dans la list box du formulaire "FormMessage" :

 C_TEXTE($1//Origine du message
 C_TEXTE($2//Message à afficher
  //Récupère le message contenu dans $2 et l'envoie dans la list box
 $p:=OBJET Lire pointeur(Objet nommé;"Column1")
 INSERER DANS TABLEAU($p->;1)
 $p->{1}:=$1+" sends "+$2

A l'utilisation, vous obtenez le résultat suivant :

Vous pouvez alors ajouter d'autres messages en exécutant à nouveau la commande APPELER FORMULAIRE :

 APPELER FORMULAIRE(formRef1;"doAddMessage";Nom du process courant;"Hello 2 Form 1")
 APPELER FORMULAIRE(formRef2;"doAddMessage";Nom du process courant;"Hello 2 Form 2")

Vous pouvez utiliser la commande APPELER FORMULAIRE pour passer des paramètres personnalisés à un formulaire, par exemple des valeurs de configuration, sans avoir à utiliser des variables process :

 $win:=Creer fenetre formulaire("form")
 APPELER FORMULAIRE($win;"configure";param1;param2)
 DIALOGUE("form")



Voir aussi  


APPELER WORKER

 
PROPRIÉTÉS 

Produit : 4D
Thème : Formulaires
Numéro : 1391
Nom intl. : CALL FORM

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v15 R5

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)