![]() |
|
![]() |
![]() |
|
![]() |
Utilizando un método similar al que se usa para activar submenús puede activar o desactivar otro menú desplegable o contextual. Esto se denomina hacer referencia a un menú.
Existen dos métodos para hacer referencia a un menú desplegable o contextual: relativo y absoluto. La referencia relativa utiliza el grupo de personalización y el ID de elemento. La referencia absoluta utiliza la posición absoluta de un elemento de menú en la jerarquía del menú. Es más recomendable la referencia relativa debido a su naturaleza dinámica, que le permite funcionar independientemente del estado actual de un menú.
Referencia relativa de comandos desplegables y contextuales
Para hacer referencia a un elemento de un menú desplegable o contextual basándose en su grupo de personalización e ID de elemento, utilice la función menucmd de AutoLISP. La sintaxis siguiente hace referencia a un elemento de menú en función de su ID de elemento.
(menucmd "Ggrupo_menús.id_elemento=value")
El ejemplo siguiente utiliza la sintaxis de referencia relativa para desactivar el elemento de menú ID_Line almacenado en el grupo de personalización sample. Funciona independientemente de la ubicación del elemento de menú en el menú.
(menucmd "Gsample.ID_Line=~")
Si conoce el contenido del archivo CUI principal, puede crear un archivo CUI parcial con un elemento de menú adicional que haga referencia al archivo principal. De este modo, los archivos CUI parciales y determinados archivos base pueden funcionar conjuntamente.
Referencia absoluta a los elementos de los menús desplegables y contextuales
Además de hacer referencia a un elemento de menú, puede activar y desactivar un elemento de menú mediante la sintaxis $Pn=xxx. El formato es el siguiente:
$Pn.i=xxx
El $ carga una sección de menú, Pn indica la sección de menú activa (los valores válidos son de 0 a 16), i especifica el número de elemento de menú y xxx (si existe) precisa una cadena de caracteres inactivos o marcados.
Utilizando la sintaxis $Pn=xxx, el ejemplo siguiente añade una marca de verificación al elemento 1 de la sección POP7.
$P7.1=!.
El siguiente ejemplo utiliza la función menucmd de AutoLISP para hacer referencia a un elemento de menú desplegable o contextual. Puesto que los archivos de personalización son dinámicos(mediante la carga de archivos CUI parciales), la siguiente sintaxis no funcionará en todos los casos.
(menucmd "P10,2=~")
Esta sintaxis se basa en la ubicación del elemento de menú y no funciona si el comando CARGARIUP inserta un elemento nuevo antes de POP1.
La numeración de elementos de menú es consecutiva, independientemente de la jerarquía del menú.
Para facilitar que un elemento pueda hacerse referencia a sí mismo independientemente de su ubicación en la jerarquía del menú, utilice las formas siguientes:
Acceso de AutoLISP al estado del rótulo
La función menucmd de AutoLISP acepta las cadenas de comandos $Pn=xxxsin el carácter inicial $. En estas funciones, la parte xxx de la cadena de comandos puede contener valores especiales.
Por ejemplo, si el elemento 5 de la sección POP6 está desactivado, el siguiente código menucmd devuelve los siguientes valores de cadena.
(menucmd "P6.5=?") devuelve "~"
(menucmd "P60,5=#?") devuelve "P6.5=~"