Articulo de referencia

Lenguaje de control de diálogo

El lenguaje de control de diálogo (DCL) es un lenguaje de descripción de alto nivel y un intérprete dentro de AutoCAD para crear diálogos gráficos simples. Las extensiones de Au...

El lenguaje de control de diálogo (DCL) es un lenguaje de descripción de alto nivel y un intérprete dentro de AutoCAD para crear diálogos gráficos simples. Las extensiones de AutoLISP lo utilizan para interactuar con el usuario en el entorno de AutoCAD.

Características y uso

A diferencia de otras API de GUI importantes, DCL no es un conjunto de herramientas de GUI completo para la programación de aplicaciones. Solo está destinado a proporcionar cuadros de diálogo simples dentro de AutoCAD. Incluye widgets de formulario básicos, como cuadros de texto, botones, casillas de verificación y cuadros de lista. DCL está orientado a objetos ; permite la reutilización a través de la herencia y la composición.

La sintaxis de DCL se basa en la definición y el uso de "mosaicos". Un "mosaico" representa un widget de la interfaz gráfica de usuario, como un cuadro de texto o una etiqueta de texto. Los mosaicos también representan widgets que contienen otros widgets, como columnas, grupos de botones de opción y los propios cuadros de diálogo. DCL proporciona mosaicos integrados para todos los widgets principales, y se pueden definir mosaicos nuevos mediante la herencia y la composición de otros mosaicos.

DCL permite interacciones con el diálogo en tiempo de ejecución mediante código Lisp. Ciertos widgets pueden tener acciones asociadas a ellos nombrando una función de AutoLISP que se ejecutará y valores que se le pasarán. A diferencia de otros tipos de GUI, los diálogos DCL no se pueden cambiar sustancialmente en tiempo de ejecución. El contenido de ciertos widgets, como cuadros de texto y cuadros de lista, se puede cambiar, pero no se pueden eliminar widgets del diálogo ni agregarlos.

Ejemplo

A continuación se muestra un ejemplo de archivo DCL (y el archivo AutoLISP correspondiente ) que demuestra las principales características de DCL.

nombre_botón : botón {
 etiqueta = "Enviar nombre";
 acción = "(cambiar-nombre)";
}

hola : dialogo {
 etiqueta = "Ejemplo DCL";
 
 : cuadro de edición {
 etiqueta = "Nombre: ";
 clave = "nombre";
 }

 :botón_nombre {
 clave = "nombre-de-envío";
 }

 : texto {
 clave = "saludo";
 }

 ok_solamente;
}

El cuadro de diálogo se crea heredando del mosaico integrado 'dialog'. Las propiedades se establecen en el cuadro de diálogo y otros widgets en pares nombre/valor. Los mosaicos se pueden colocar dentro del cuadro de diálogo simplemente nombrándolos, o nombrándolos y especificando propiedades adicionales. Se define un nuevo mosaico ('name_button') para su uso nombrándolo y especificando propiedades para él.

; DCL se guarda como "hola.dcl" 
( defun change-name () ( set_tile "saludo" ( strcat "Hola, " ( get_tile "nombre" ) ​​"!" )))  
        

( setq hola-dcl ( cargar_diálogo "hola.dcl" )) ( nuevo_diálogo "hola" hola-dcl ) ( iniciar_diálogo ) ( descargar_diálogo hola-dcl )   
  

 

Un cuadro de diálogo DCL se crea mediante la llamada a una serie de funciones en un archivo AutoLisp. Los mosaicos pueden volver a llamar al código AutoLISP en determinados eventos y Lisp puede manipular el contenido de los mosaicos mientras se ejecuta el cuadro de diálogo.

Tecnologías alternativas

Para crear GUI más generales y otras extensiones dentro de CAD, AutoDesk ofrece otras opciones. La API ObjectARX para C++ permite crear extensiones como en Microsoft Visual Studio. VBA permite la programación de arrastrar y soltar para AutoCAD, Microsoft Office y otras aplicaciones.

A partir de AutoCAD 2007 y versiones posteriores, los programas AutoLISP o Visual-LISP pueden llamar a rutinas escritas en Visual Studio .NET (VB o C#). Los programadores ahora pueden crear cuadros de diálogo en VB o C# que tengan la gama completa de controles que se encuentran en la API de formularios .NET y que se puedan llamar y acceder a ellos desde Visual-LISP.

  • Tutorial de DCL de Jeffrey P. Sander
  • Tutoriales de DCL de AfraLISP
  • AutoLISP-Exchange.com Introducción a los cuadros de diálogo Dcl
Obtenido de "https://es.wikipedia.org/w/index.php?title=Idioma_de_control_de_diálogo&oldid=1165572382"