4D v16.3

Command name

Página Inicial

 
4D v16.3
Command name

Command name 


 

Command name ( comando {; info {; tema}} ) -> Resultado 
Parâmetro Tipo   Descrição
comando  Inteiro longo in Número de comando
info  Inteiro longo in Propriedade thread seguro do comando
tema  Texto in Tema da linguagem do comando
Resultado  String in Nome do comando localizado

O comando Command name  retorna o nome do comando cujno número foi passado em comando.

Nota: O número de cada comando é indicado no  Explorer assim como na área Propriedades desta documentação.

Nota de Compatibilidade: Já que o nome de comando pode variar entre versões de 4D (comandos renomeados) ou de acordo com a linguagem do aplicativo, pode ser útil designar um comando através de seu número, especialmente em porções de código não-tokenizadas. A utilidade do comando com respeito a esta necessidade diminui ao longo do tempo com a evolução de 4D, já que agora 4D oferece uma sintaxe token. Esta sintaxe token pode ser usada para evitar possíveis problemas por variações em nomes de comando, assim como outros elementos tais como tabelas, mas permitindo digitar os nomes em uma maneira legível (para saber mais, veja Usar tokens em fórmulas ). Além disso, de forma pré-determinada, a versão na língua inglesa a partir de 4D v15; entretanto, a opção "Use regional system settings" em Página Métodos das Preferências permite que continue a usar a linguagem francesa na versão francesa de 4D.

Dois valores opcionais estão disponíveis:
  • info: propriedades do comando. O valor retornado é um campo bit, no qual apenas o primeiro bit (bit 0) é significativo. É estabelecido como 1 se o comando for thread-seguro ( ou seja, compatível com a execução em um processo preemptivo) e 0 se for thread-inseguro. Apenas comandos thread-seguro podem ser usados em um processo preemptivo. Para saber mais sobre este ponto, veja  [#title id="8733"/].
  • tema: retorna o nome do tema 4D language para o comando.

O comando Command name estabelece a variável OK para 1 se comando corresponde a um número de comando existente, e a 0 de outra maneira. Note, entretanto, que alguns comandos existentes foram desativados, em cujo caso Command name retorna uma string vazia (ver último exemplo).

O seguinte código lhe permite carregar todos os comandos 4D válidos em um array:

 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) //o número de comando existe
       If(Length($Txt_command)>0) //o comando não está desativado
          APPEND TO ARRAY($tTxt_commands;$Txt_command)
          APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
       End if
    End if
 Until(OK=0) //fim dos comandos existentes

Em um formulário, você deseja mostrar uma lista suspensa que contenha os comandos padrão de geração de informes. No método de objeto desta lista suspensa, você escreve:

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

Na versão inglesa de 4D, a lista suspensa conterá: Sum, Average, Min, e Max. Na versão francesa(*), a lista suspensa conterá: Somme, Moyenne, Min, e Max.

*com um aplicativo 4D application configurado para a linguagem francesa (ver nota de compatibilidade).

Se quiser criar um método que devolva True se o comando, cujo número foi passado como parâmetro, for thread seguro e em caso contrário False.

  //Método projeto Is_Thread_Safe
  //Is_Thread_Safe(numCom) -> Booleano
 
 C_LONGINT($1;$threadsafe)
 C_TEXT($name)
 C_BOOLEAN($0)
 $name:=Command name($1;$threadsafe;$theme)
 If($threadsafe ?? 0) //se o primeiro bit for definido em 1
    $0:=True
 Else
    $0:=False
 End if

Depois, para o comando "SAVE RECORD" (53) por exemplo, pode escrever:

 $isSafe:=Is_Thread_Safe(53)
  // devolveTrue



Ver também 

EXECUTE FORMULA
Processos 4D Preemptivos

 
PROPRIEDADES 

Produto: 4D
Tema: Linguagem
Número 538

Este comando modifica a variável sistema OKThis command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v6
Modificado: 4D v15 R5

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)