Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
APPELER FORMULAIRE
|
APPELER FORMULAIRE ( fenêtre ; formule {; param}{; param2 ; ... ; paramN} ) | ||||||||
Paramètre | Type | Description | ||||||
fenêtre | RefFen |
![]() |
Numéro de référence de la fenêtre | |||||
formule | Objet, Texte |
![]() |
Objet Formula ou Nom de la méthode projet | |||||
param | Expression |
![]() |
Paramètre(s) passé(s) à la méthode | |||||
La commande APPELER FORMULAIRE exécute le code 4D désigné dans formule 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 la formule 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 formule, vous désignez le code 4D qui doit être exécuté dans le contexte du process parent de la fenêtre. Vous pousser passer soit :
Vous pouvez aussi passer des paramètres à la formule en utilisant un ou plusieurs paramètres param. Vous pouvez utiliser des paramètres séquentiels ou, si l'expression de la formule est une fonction ou une méthode projet, des paramètres nommés. Lors de l'exécution dans le contexte du formulaire, la formule du process reçoit les paramètres nommés ou bien 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. En outre, dans le contexte de la commande APPELER FORMULAIRE, les points suivants doivent être pris en compte :
Vous pouvez utiliser la commande APPELER FORMULAIRE pour passer des paramètres personnalisés à un formulaire, tels que des valeurs de configuration par exemple, sans avoir à utiliser de variables process :
$win:=Créer fenêtre formulaire("form")
APPELER FORMULAIRE($win;Formula(configure);param1;param2)
DIALOGUE("form")
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")
Produit : 4D
Thème : Evénements formulaire
Numéro :
1391
Nom intl. : CALL FORM
Créé : 4D v15 R5
Modifié : 4D v16 R4
Modifié : 4D v19 R6
4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)