REGISTER CLIENT
Historique
| Release | Modifications |
|---|---|
| 21 | Paramètre * ignoré |
| 11.3 | Paramètre période ignoré |
REGISTER CLIENT* ( nomClient )
| Paramètre | Type | Description | |
|---|---|---|---|
| nomClient | Text | → | Nom de la session cliente 4D |
Description
a commande REGISTER CLIENT “inscrit” un poste client 4D sous le nom nomClient auprès de 4D Server, afin de permettre que d’autres clients ou éventuellement 4D Server (par l’intermédiaire de procédures stockées) puissent y exécuter des méthodes à l’aide de la commande EXECUTE ON CLIENT. Une fois inscrit, un client 4D peut donc exécuter une ou plusieurs méthodes pour le compte d’autres clients.
Notes :
- Vous pouvez également inscrire automatiquement chaque poste client qui se connecte à 4D Server via l'option “Inscrire les clients au démarrage pour Exécuter sur client” dans la boîte de dialogue des Propriétés.
- Lorsqu’elle est utilisée avec 4D en mode local, cette commande ne fait rien.
- Plusieurs postes clients 4D peuvent avoir le même nom d’inscription.
A l’issue de l’exécution de la commande, un process, nommé nomClient, est créé sur le poste client. Ce process ne peut être détruit que par la commande UNREGISTER CLIENT.
Une fois la commande exécutée, il n’est pas possible de modifier “à la volée” le nom du client 4D. Pour cela, il est nécessaire d’appeler la commande UNREGISTER CLIENT puis d’exécuter à nouveau REGISTER CLIENT.
Exemple
Les méthodes suivantes permettent de réaliser une petite messagerie entre les postes clients inscrits.
1. La méthode INSCRIPTION permet d’inscrire un client 4D et de le tenir prêt à recevoir un message de la part d’un autre client 4D :
//Méthode INSCRIPTION
//Il faut se désinscrire avant de s’inscrire sous un autre nom
UNREGISTER CLIENT
var vNomPseudo : Text
Repeat
vNomPseudo:=Request("Entrez votre nom :";"Utilisateur";"OK";"Annuler")
Until((OK=0)|(vNomPseudo#""))
If(OK=0)
... // Ne rien faire
Else
REGISTER CLIENT(vNomPseudo;*)
End if
2. L’instruction suivante permet de connaître les clients inscrits. Elle peut être placée dans la :
// Méthode base Sur ouverture
var PrListeClient : Integer
PrListeClient:=New process("Liste_4DClients";32000;"Liste d'inscrits")
3. La méthode Liste_4DClients permet de récupérer tous les clients 4D inscrits et les personnes acceptant de recevoir des messages :
// Méthode Liste_4DClients
var $Ref; $p : Integer
ARRAY TEXT($ListeClient;0)
ARRAY LONGINT($ListeCharge;0)
If(Application type=4D mode distant)
// Le code ci-dessous n’est valable qu’en mode client-serveur
$Ref:=Open window(100;100;300;400;-(Palette window+Has window title);"Liste d'inscrits")
Repeat
GET REGISTERED CLIENTS($ListeClient;$ListeCharge)
//Récupération des clients inscrits dans $ListeClient
ERASE WINDOW($Ref)
GOTO XY(0;0)
For($p;1;Size of array($ListeClient))
MESSAGE($ListeClient{$p}+Char(Carriage return))
End for
//Afficher chaque seconde
DELAY PROCESS(Current process;60)
Until(False) // Boucle infinie
End if
4. La méthode Envoyer_Message permet d’envoyer un message à un autre client 4D inscrit.
// Méthode Envoyer_Message
var $Destinataire; $Message : Text
$Destinataire:=Request("Destinataire du message :";"")
// Saisir le nom d'une des personnes visibles dans la fenêtre générée par la méthode base Sur ouverture
If(OK#0)
$Message:=Request("Message :") // Contenu du message
If(OK#0)
EXECUTE ON CLIENT($Destinataire;"Afficher_Message";$Message) // Envoi du message
End if
End if
5. La méthode Afficher_Message affiche le message sur le poste client :
// Méthode Afficher_Message
#DECLARE($message : Text)
ALERT($message)
6. Enfin, cette méthode permet à un poste client de n’être plus visible par les autres clients 4D et ne plus recevoir de message :
// Méthode DÉSINSCRIPTION :
UNREGISTER CLIENT
Variables et ensembles système
Si le poste client est correctement inscrit, la variable système OK prend la valeur 1. Si le poste était déjà inscrit, la commande ne fait rien et OK prend la valeur 0.
Voir aussi
EXECUTE ON CLIENT
GET REGISTERED CLIENTS
UNREGISTER CLIENT
Propriétés
| Numéro de commande | 648 |
| Thread safe | ✗ |
| Modifie les variables | OK |