version 6.0
DDE_SERVER
| Paramètre | Type | Description | ||||
| Cette commande ne requiert pas de paramètre | ||||||
Description
Une fois DDE_Tools installé, 4D peut être utilisé en tant que serveur DDE. Les autres applications peuvent alors ouvrir des connexions avec 4D, et lui demander ou lui envoyer des données à l'aide des commandes DDE_Request et DDE_Poke, ou encore provoquer l'exécution de commandes 4D à l'aide de DDE_Execute.
De par la nature multiprocess de 4D, il est nécessaire que le serveur DDE de 4D dispose d'un contexte d'exécution. Si une application demande le contenu d'une variable par l'intermédiaire de la commande DDE_Request, il faut que le développeur puisse savoir dans quel process ce contenu doit être lu.
Pour cela, vous devez utiliser la commande DDE_SERVER. Lorsque des applications communiquent avec le serveur DDE de 4D, les requêtes sont empilées. Lorsqu'un process exécute la commande DDE_SERVER, toutes les requêtes préalablement empilées sont traitées dans le contexte d'exécution de ce process.
Pour transformer 4D en serveur DDE, vous pouvez donc créer un process dont la méthode appelera périodiquement la commande DDE_SERVER. Tous les appels à 4D s'exécuteront dans le contexte de ce process.
Si vous souhaitez accéder aux données d'un enregistrement courant, vous pouvez également appeler la commande DDE_SERVER dans la méthode du formulaire.
Note : Pour plus d'informations sur l'utilisation de cette commande, reportez-vous aux exemples fournis dans la section 4e Dimension en tant que serveur DDE.
Exemples
(1) La méthode projet serveurDDE permet de traiter tout type de requête DDE :
Repeter DDE_SERVER ENDORMIR PROCESS(Numero du process courant; 60) Jusque (<>DoitQuitter)
Cette méthode peut être lancée par exemple depuis la Méthode base Sur ouverture :
<>doitQuitter := Faux MonProc:=Nouveau process( "serveurDDE"; 32000; "Process DDE")
(2) Dans le cas où vous devez accéder aux données de l'enregistrement courant, vous pouvez également placer le code suivant dans la méthode du formulaire entrée affichant les valeurs que vous souhaitez récupérer dans l'application DDE cliente :
`Méthode formulaire Au cas ou :(Evenement formulaire=Sur chargement) FIXER MINUTEUR(30) :(Evenement formulaire=Sur minuteur) DDE_SERVER Fin de cas
Référence
4e Dimension en tant que serveur DDE.