4D v16.3

Command name

Accueil

 
4D v16.3
Command name

Command name 


 

Command name ( commande {; info {; thème}} ) -> Résultat 
Paramètre Type   Description
commande  Entier long in Numéro de la commande
info  Entier long in Propriété thread-safe de la commande
thème  Texte in Thème du langage de la commande
Résultat  Chaîne in Nom de la commande

La fonction Command name retourne le nom ainsi que (optionnellement) les propriétés de la commande dont le numéro a été passé dans commande.

Note : Le numéro de chaque commande est indiqué dans l'Explorateur ainsi que dans la zone Propriétés de cette documentation.

Note de compatibilité : Le nom d'une commande pouvant varier au fil des versions de 4D (commandes renommées) ou en fonction de la langue de l'application, cette commande était utilisée dans les versions précédentes du programme pour désigner une commande directement via son numéro, en particulier dans les parties de code non tokenisées. Ce besoin a diminué au fil des évolutions de 4D, car pour les instructions non tokenisées (formules), 4D propose désormais une syntaxe tokenisée permettant de s'affranchir des variations des noms de commandes mais aussi des autres éléments comme les tables, tout en permettant de les saisir de façon lisible (pour plus d'informations sur ce point, reportez-vous à la section Utiliser des tokens dans les formules). Par ailleurs, par défaut la version anglaise du langage est utilisée à compter de 4D v15 (toutefois l'option "Utiliser langage français et paramètres régionaux système" de la Page Méthodes des Préférences permet de continuer à utiliser la version française dans un 4D français).

Deux paramètres optionnels sont disponibles :

  • info : propriétés de la commande. La valeur retournée est un champ de bits, dans lequel pour le moment seul le premier bit est signifiant (bit 0). Il est à 1 si la commande est thread-safe (i.e. compatible avec une exécution dans un process préemptif) et à 0 si la commande est thread-unsafe. Seules les commandes thread-safe peuvent être utilisées dans les process préemptifs. Pour plus d'informations sur ce point, veuillez vous reporter à la section Process 4D préemptifs.
  • thème : retourne le nom du thème de la commande dans le langage 4D.

La commande Command name met la variable OK à 1 si la commande correspond à un numéro de commande existant, et à 0 dans le cas contraire. A noter cependant que certaines commandes existantes ont été désactivées, auquel cas Command name retourne une chaîne vide.

Le code suivant vous permet de charger toutes les commandes 4D valides dans un tableau :

 C_LONGINT($Lon_id)
 C_TEXT($Txt_command)
 ARRAY LONGINT($tLon_Command_IDs;0)
 ARRAY TEXT($tTxt_commands;0)
 
 Repeat
    $Lon_id:=$Lon_id+1
    $Txt_command:=Command name($Lon_id)
    If(OK=1) //le numéro de commande existe
       If(Length($Txt_command)>0) //la commande n'est pas désactivée
          APPEND TO ARRAY($tTxt_commands;$Txt_command)
          APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
       End if
    End if
 Until(OK=0) //fin des commandes existantes

Dans un formulaire, vous voulez afficher une liste déroulante contenant les commandes standard de génération d'états. Dans la méthode objet de cette liste déroulante, vous écrivez :

 Case of
    :(Form event=On Load)
       ARRAY TEXT(asCommand;4)
       asCommand{1}:=Command name(1)
       asCommand{2}:=Command name(2)
       asCommand{3}:=Command name(3)
       asCommand{4}:=Command name(4)
  ` ...
 End case

Dans une version anglaise de 4D, la liste déroulante contiendra : Sum, Average, Min et Max.
Dans une version française* de 4D, la liste déroulante contiendra : Somme, Moyenne, Min et Max.

*avec l'application 4D paramétrée pour utiliser le langage français (cf. note de compatibilité),

Vous souhaitez créer une méthode qui retourne Vrai si la commande dont le numéro passé en paramètre est thread-safe, et Faux si elle est thread-unsafe.

  //Méthode projet Is_Thread_Safe
  //Is_Thread_Safe(numCom) -> Booléen
 
 C_LONGINT($1;$threadsafe)
 C_TEXT($name)
 C_BOOLEAN($0)
 $name:=Command name($1;$threadsafe;$theme)
 If($threadsafe ?? 0) //si le premier bit est à 1
    $0:=True
 Else
    $0:=False
 End if

Par exemple, pour la commande "STOCKER ENREGISTREMENT", numéro 53, vous pouvez écrire :

 $isSafe:=Is_Thread_Safe(53)
  // retourne Vrai



Voir aussi  

EXECUTE FORMULA
Process 4D préemptifs

 
PROPRIÉTÉS 

Produit : 4D
Thème : Langage
Numéro : 538

Cette commande modifie la variable système OKCommande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v6
Modifié : 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)