Aller au contenu principal
Version: Next

Command name

Command name ( commande {; info {; thème}} ) : Text

ParamètreTypeDescription
commandeIntegerNuméro de la commande
infoIntegerPropriété thread-safe de la commande
thèmeTextThème du langage de la commande
RésultatTextNom de la commande

Description

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 Is a list 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.

Exemple 1

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

 var $Lon_id : Integer
 var $Txt_command : Text
 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

Exemple 2

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 code=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é),

Exemple 3

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
 
 var $1;$threadsafe : Integer
 var $name : Text
 var $0 : Boolean
 $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