versión 6.0
Process number (nom{; *}) Numérico
Parámetro | Tipo | Descripción | |
nom | Alfa | Nombre del proceso del cual recuperar el número | |
* | * | Devolver el número del proceso servidor | |
Resultado | Numérico | Número de proceso |
Descripción
Process number devuelve el número del proceso cuyo nombre se pasa en nom. Si no se encuentra ningún proceso, Process number devuelve 0.
El parámetro opcional * le permite recuperar, a partir de 4D Client, el número de un proceso que se está ejecutando en el servidor (un procedimiento almacenado). En este caso, el valor devuelto es negativo. Esta opción es particularmente útil cuando se utilizan los comandos GET PROCESS VARIABLE y SET PROCESS VARIABLE. Para mayor información, por favor consulte las descripciones de estos comandos.
Si el comando se ejecuta con el parámetro * desde un proceso en el equipo servidor, el valor devuelto es positivo.
Ejemplo
Usted crea una paleta flotante, que corre en un proceso separado, en el cual usted implementa sus propias herramientas para interactuar con el entorno Diseño. Por ejemplo, cuando selecciona un elemento en una lista jerárquica de palabras claves, usted quiere pegar algún texto en la ventana del primer plano del entorno Diseño. Para hacerlo, puede utilizar el Portapapeles, pero el evento de pegado debe ocurrir dentro del proceso Diseño. La siguiente función devuelve el número del proceso del proceso Diseño (si está activo):
` Método de proyecto Numero proceso Diseño ` Numero proceso Diseño -> Entero largo ` Numero proceso Diseño -> Número del proceso de Diseño $0:=Process number("Proceso Diseño") ` Nota: Esto puede no funcionar en el futuro si la fuente cambia
Con esta función, el método de proyecto listado pega el texto recibido como parámetro en la ventana del primer plano en el entorno Diseño (si aplica):
` Método de proyecto PEGAR TEXTO EN DISEÑO ` PEGAR TEXTO EN DISEÑO ( Text ) `PEGAR TEXTO EN DISEÑO (Texto a pegar en la ventana de Diseño del primer plano) C_TEXT($1) C_LONGINT($vlDiseñoPID;$vlCont) $vlDiseñoPID:=Numero proceso Diseño If ($vlDiseñoPID # 0) ` Coloque el texto en el portapapeles SET TEXT TO PASTEBOARD($1) ` Generar un evento Ctrl-V / Comando-V POST KEY(Ascii("v");Command key mask;$vlDiseñoPID) ` Llamar repetitivamente DELAY PROCESS para que el minutero puede pasar ` sobre el evento al proceso Diseño For ($vlCont;1;5) DELAY PROCESS(Current process;1) End for End if
Ver también
GET PROCESS VARIABLE, PROCESS PROPERTIES, Process state, SET PROCESS VARIABLE.