Macros Segur
Macros Segur
Macros Segur
MACROS DE MICROSTATION
1. INTRODUCCIÓN A MACROS 1
1.1 Creación de Macros Interactivas 1
1.2 Reproducción de una Macro 2
1.3 Detalle de una Macro 2
2. ENTORNO DE PROGRAMACIÓN 3
2.1 Menú de Archivo 4
2.2 Menú Edición 4
2.3 Menú Ejecutar 6
2.4 Barra de Botones 6
3. REVISIÓN DEL LENGUAJE 7
3.1 Comentarios 7
3.2 Nomenclatura de Identificadores 7
3.3 Tipos de Datos predefinidos 8
3.4 Declaración de Variables 8
3.5 Arrays 9
3.6 Tipos definidos por el usuario, Registros 11
3.7 Ámbito de las Variables 12
3.8 Inicialización de Variables 12
3.9 Literales 13
3.10 Constantes 13
3.11 Expresiones aritméticas 13
3.12 Sentencias 17
3.13 Control de Ejecución 17
3.13.1 Bifurcaciones 17
3.13.2 Iteraciones 19
3.14 Saltos Incondicionales 21
3.15 Estructura del programa 22
3.15.1 Procedimientos 23
3.15.2 Funciones 25
3.15.3 Paso de argumentos a procedimientos y funciones 26
3.15.4 Declaración de funciones y procedimientos 27
3.16 Objetos en Basic 28
3.16.1 Declaración de Variables de objeto 29
3.16.2 Asignación de objetos 29
3.16.3 Creación de instancias de objetos 29
3.16.4 Acceso a propiedades de un objeto 30
3.16.5 Acceso a métodos de un objeto 30
3.16.6 Colecciones de objetos 31
3.16.7 Objetos constantes 31
3.17 Manejo de Errores 32
3.18 Interacción de las Macros con MicroStation 33
3.18.1 Comandos de MicroStation 34
3.18.2 Sistema de coordenadas de las Macros 34
3.18.3 Manipulación de elementos 34
3.18.4 Modificación de elementos 36
3.18.5 Selección de elementos y cercados 37
3.18.6 Localización de elementos gráficos 38
3.18.7 Acceso a la información del archivo de diseño 39
3.18.8 Acceso a los ajustes de MicroStation 39
3.18.9 Acceso a la Información de vistas 39
3.18.10 Acceso a la información de los archivos de referencia 40
3.18.11 Acceso a la información de la sesión 40
3.18.12 Extensiones de Base de Datos 40.
3.19 Cajas de Diálogo 40
3.19.1 Cajas Standard 40
3.19.2 Cajas Personalizadas 41
1. INTRODUCCIÓN A MACROS.
1.1 CREACIÓN DE MACROS GRABADAS
La creación de macros se realiza en lenguaje BASIC, debido a su amplia
difusión y fácil aprendizaje, a este lenguaje se le han añadido extensiones para ejecutar
operaciones en
MicroStation. Las macros más simples posibles son las que llamaremos macros
grabadas, que lo único que hacen es realizar de manera automática una secuencia de
pasos que nosotros hemos realizado con anterioridad. Las operaciones que nosotros
realicemos se pasará a instrucciones en BASIC, que posteriormente el motor de Macros
de MicroStation interpretará.
Para crear una macro se realizarán los siguientes pasos:
Utilidades ?? Crear macro...
Para reproducir una macro ya existente, los pasos a seguir son los siguientes:
Desde la barra de menús realizaremos:
Utilidades ?? Macros
Nos aparecerá la siguiente caja de diálogo:
Las macros vistas hasta ahora en del tipo mas básico que se pueden realizar con
MicroStation.
Estas macros no aportan ningún tipo de flexibilidad. Las macros programadas permiten
toda la flexibilidad que sea necesaria, así como la creación de nuestras propias cajas de
diálogo. Para realizar este tipo de macros, MicroStation nos facilita un entorno de
trabajo. La herramienta fundamental es el editor de texto. Si queremos editar el texto de
una macro existente, deberemos hacer:
Utilidades ?? Macros
Y una vez que aparece la ventana con las macros que contiene, deberemos seleccionar
la macro que queremos editar y hacer clic en ella. Después haremos clic en Editar. Con
esto nos aparecerá el código de esa macro en el editor de macros de MicroStation.
2. EL ENTORNO DE PROGRAMACIÓN DE
MACROS EN MICROSTATION BASIC.4
Veremos ahora la utilidad de las opciones del menú del editor de Macros, así como las
funciones de los botones de su barra de tareas.
2.1 MENÚ ARCHIVO
En el menú archivo nos encontramos las operaciones típicas de cualquier aplicación que
se ejecuta en entorno Windows.
Nuevo...
La utilizaremos cuando queramos comenzar a programar una macro desde cero. No será
el procedimiento habitual, pues por metodología partiremos sobre una macro grabada
que nos dará la estructura, y nosotros luego refinaremos.
Abrir
La utilizaremos para abrir el código de una macro ya existente.
Guardar
Almacenará la macro activa. En el editor de macros sólo se puede tener abierto el
código de una única macro.
Guardar como...
Servirá para guardar la macro activa con el nombre y en el directorio que
especifiquemos.
Salir
Sale del editor de macros.
2.2 EL MENÚ EDICIÓN.
Aquí se encuentran las operaciones típicas de las operaciones de edición de cualquier
aplicación en entorno Windows.
Deshacer
Deshace el último cambio realizado.
Repetir
Deshace la última operación deshecha.
Buscar
Sirve para buscar un texto, y nos permite definir si queremos que distinga las
mayúsculas de las minúsculas.
Buscar siguiente
Busca el siguiente texto que coincide con la búsqueda especificada.
Cortar, Copiar, Pegar
Sirven para cortar, copiar y pegar texto en el documento.
Variables
Muestra la caja de diálogo variables, donde se mostrarán las variables de la macro en
ejecución y su estado actual. Cuando se marcan breakpoint en el código de una macro y
se depura, se puede utilizar el editor de variables, tanto para consultar los valores de
estas como para cambiarlos.
En el editor de variables aparecerán todas las variables del programa, si son
complejas, al hacer un doble clic en ellas se desglosarán, y para cambiar el valor de las
ya simples, se hace doble clic en ella y aparecerá una caja de diálogo en la que se puede
cambiar el valor de esta.
Esta utilidad es de gran ayuda, pues podemos consultar el valor de las variables
sin el típico y costoso método de utilizar mensajes por pantalla para conocer el valor de
una determinada variable.
Diálogo personalizado
Desde aquí se gestionan las interfaces de usuario que se van a crear. Esto se verá
mas en detalle en el punto 3.19, Adicción de cajas de diálogo a macros.
Punto de entrada al programa
Se utiliza para arrancar macros cuando se imprime, se realiza una conversión
DWG - DXF.
2.3 EL MENÚ EJECUTAR
Aquí se encuentran las operaciones propias de un entorno de programación.
Comenzar
Comienza la ejecución de la macro
Dividir
Pone o quita un breakpoint en el punto especificado.
Consultar
Ejecución línea a línea del código de la macro, rastreando las subrutinas
Ignorar.
Ejecución línea a línea del código de la macro, saltando las subrutinas, que no se
ejecutan.
Parar
Para la depuración del código del sistema
Seguir
Arranca o continúa (tras parar en un breakpoint) la ejecución del código
Variables públicas
Su visibilidad es para todo el sistema, y es una manera de compartir información
entre dos macros que están activas en el sistema. Tiene muchos inconvenientes, pues se
deben de declarar en las macros que quieren utilizarlas, y si en una macro se declara con
un tipo y en otra macro aparece el mismo macro pero con distinto tipo, una de las dos
macros no se ejecutará. Su declaración se debe de hacer antes de cualquier función o
método. Para declararlas se hará de la
siguiente forma:
Public variable As Tipo
Ejemplo:
Public abiertas As Integer
Solo se deben de utilizar en casos de necesidad.
3.8 INICIALIZACIÓN DE VARIABLES.
MicroStation BASIC realiza una inicializació por defecto de todas las variables al
crearlas. Esta característica es útil, pero por motivos de legibilidad, es interesante
inicializarlas de forma explícita. La inicialización que realiza por defecto es la
siguiente:.13
-Variables numéricas se inicializan a cero.
-Variables String se inicializan con la cadena vacia,“”.
3.9 LITERALES.
Los literales son valores que se indican de manera directa. Los números los
explicitaremos como tales, y las cadenas de texto deberemos introducirlas entre comillas
dobles:
nombre=”Pepe”
edad = 55
peso = 89.5
3.10 CONSTANTES.
Cuando el valor de un literal se debe asignar a una variable o realizar
operaciones con el varias veces, es interesante almacenarlo en una constante con un
determinado nombre. La ventaja es que en caso de cambiar ese valor, con cambiarlo en
la declaración basta, y no deberemos cambiar todas las expresiones. Para declarar una
constante se utiliza: Const nombreConstante CaracterTipo = expresión
Ejemplo:
Const MaximoFicherosReferencia%=255
Const AceptarRechazar = “Aceptar/Rechazar”
Const UnTercio = 1/3 ‘Se evalua 1/3 y UnTercio=0.3333
El operador asignación.
Cuando se quiere asignar a una variables el resultado de una expresión se utiliza el
operador asignación, que se encuentra representado por el simbolo igual.
Se pueden asignar sin necesidad de conversiones explícitas cualquier número a
cualquier variable numérica, pues se hacen conversiones automáticas. Pueden existir
errores de “overflow” si el valor que se asigna a una variable es mayor de lo que puede
soportar.
Ejemplo:
Ejemplos:
En una expresión los operadores no necesitan ser del mismo tipo, los tipos mas
pequeños se convierten de manera automática a los mas grandes, y el resultado se
convierte al tipo de la variable a la que se le asigna la expresión.
Operadores aritméticos
En las comparaciones con Strings, hay que tener en cuenta que son distintas las
mayúsculas que las minúsculas, yque una “A” es menor que “a”, o sea las mayusculas
tienen menos valor que las minúsculas.
Operadores lógicos
Los operadores lógicos tambien funcionan con operadores numéricos, realizando las
operaciones
booleanas bit a bit.
Preferencia de operadores
Ordenados de mayor a menor preferencia serán:
Los operadores lógicos tambien funcionan con operadores numéricos, realizando las
operaciones booleanas bit a bit.
3.12 SENTENCIAS
En MicroStation BASIC, cada sentencia debe ir en una línea, y en caso de no
caber , se puede utilizar el caracter “_” para continuar en la siguiente línea, pero nunca
dentro de una literal que sea una cadena de caracteres, además debe de ser el último
caracter y estar separado del anterior por un espacio.
Dim mensaje As String
mensaje = “El perro de san roque no tiene rabo” + _
“porque Ramón Rodriguez se lo ha robado”
3.13.1 BIFURCACIONES
If..Then..Else End If
3.13.2 ITERACIONES
Do...loop
Do While condición
Instrucciones
Loop
Do...Loop While
La sintaxis es la siguiente:
Do
Instrucciones
Loop While Condición
Se diferencia de la anterior, en que primero se ejecutan las instrucciones y despues se
verifica la condición, de esta manera el bucle se ejecuta como mínimo una vez. Se intera
mientras la condición sea verdadera.
Es como la primera variación del Do...Loop, pero ahora el bucle se ejecuta mientras la
condición sea falsa, cuando se hace verdadera se sale del bucle. La sintaxis es la
siguiente:
Do Until Condición
Instrucciones
Loop
Es como la segunda variación del Do...Loop, pero ahora el bucle se ejecuta mientras la
condición sea falsa, cuando se hace verdadera se sale del bucle. La sintaxis es la
siguiente:
Do
Instrucciones
Loop Until Condición
Como en la segunda variación, esta variación del Do...Loop se ejecuta siempre al menos
una vez, pues la condición se evalua despues de ejecutar las instrucciones.
While...wend
For...Next
Si bien esta es una herramientas mas de programación de las muchas que tiene
MicroStation BASIC, no se debe de utilizar nunca. Esto es debido a que resta claridad y
estructuración al progrma, llendo en contra de toda programación estructurada.
Comentaremos su existencia y uso, pero se deberá utilzar a la hora de programar.
Para hacer un salto incondicional, lo primero es etiquetar una línea (poner un label).
Para esto antes de la instrucción se coloca un identificador seguido de dos puntos.
Ejemplo:
Para saltar a esa lína, debermos utilizar la sentencia Goto seguido del identificador de
etiqueta al que deseemos saltar.
Ejemplo:
Goto asignación
GoSub... Return
Es del mismo tipo que un Goto, pero que vuelve automáticamente a la siguiente
sentencia desde la que se saltó al encontrar un Return.
Ejemplo:
‘Calculo de la suma de las 10 primeras potencias de 2
Sub Main
Dim exponenteMaximo, total, exponente As Integer
exponenteMaximo = 10
total = 0
GoSub Calcular
Print “La suma de:”; exponenteMaximo; “es”; total
Exit Sub
Calcular:
For exponente = 1 to exponenteMaximo
total = total + 2 ^ exponente
Next exponente
Return
End Sub
Al igual que la instrucción Goto, no se debe de utilizar, por los mismos motivos que
esta.
3.15 ESTRUCTURA DE PROGRAMA
Cuando se va complicando el programa principal, es necesario estructura el programa
en subprogramas que cumplen diferentes tareas. Se pueden crear dos tipos de
subprogramas, procedimientos y funciones.
-Los procedimientos no devuelven valores, la llamada al procedimiento se una
sentencia por sí.
-Las funciones si pueden devolver valores, de manera que la llamada puede
formar parte de una expresion.
-Existen procedimientos y funciones definidos por el usuario y procedimientos y
funciones que forman parte del entorno de desarrollo, y que ya se encuentran
implementados.
En el desarrollo del código de un subprograma o subrutina, se permite la recursión, esto
es, que la subrutina se llame a si misma.
El uso de procedimientos y funciones, además de utilizarse para estructurar el programa,
vale para encapsular operaciones que se van a utilizar en diferentes puntos del
programa, o operaciones que interesa que se hagan de una sola llamada, por motivos de
claridad (calcular un factorial por ejemplo).
En macro de MicroStation, lo primer que se ejecuta es el procedimiento Main, que
deberá estar en toda macro definido, y a partir de este se llamará a los procedimientos
que hagan falta.
3.15.1 PROCEDIMIENTOS
Declaración de procedimientos
La declaración de un procedimiento es la siguiente:
Sub main
Dim maximo As Integer
maximo = 10
ImprimePotenciaSumada 2, maximo
Call ImprimePotenciaSumada (3, maximo)
End Sub
Por claridad resulta mejor el segundo tipo de llamada.
3.15.2 FUNCIONES
Declaración de funciones
Una función solo puede devolver cosas de tipos predefinidos, no se pueden devolver ni
arrays ni tipos construidos por el usuario.
Para que la función devuelva en valor, se deberá de asignar al nombre de la función el
valor que se desea devolver, de lo contrario de devolverá un 0 si era un valor numérico
o la cadena vacía si lo que se pretendía devolver era un String.
Si se quiere salir de una función antes de llegar al End Function, se puede utilizar la
clausula Exit Sub. Se suele utilizar si se asigna el valor al nombre de la función y
todavía queda código por delante, que será inutil ejecutar, pues ya no influira nada (ya
se ha asignado el valor a devolver), pues los parámetros de una función son solo de
entrada.
Ejemplos:
Por defecto, los argumentos se pasan por referencia, esto implica que si en la cabecera
del procedimiento o función no se ha utilizado la clausula byVal, si se modifica el valor
de ese parámetro dentro del procedimiento, al volver al programa que llamó al
procedimiento, el valor de esa variable habrá cambiado.
Para evitar que se modifique el valor de la variable hay varias posibilidades:
s1 = Prueba((s))
Un objeto es una entidad que engloba unas propiedades o atributos (información del
elemento) y métodos (operaciones que puede realizar ese objeto). Un ejemplo se objeto
sería una persona:
-Atributos:
Edad, nombre, apellidos, etc..
-Metodos:
PonNombre, PonApellidos, Cumpleaños, Edad?
Una vez declarado, hay que asignarle un objeto físico, esto se hace con la sentencia Set,
seguido de una asignación con el operador igual. Al asignar un objeto a otro, se hace
una union unívoca entre ambos, de manera que si modificamos uno, los objetos a los
que fue asignado este también habrán cambiado.
Ejemplos:
Se pueden comparar dos variables de objeto, para ver si apuntan al mismo objeto, si las
variables
contienen identica información, pero no apuntan al mismo objeto, la comparación
devolverá falso. Para comparar dos objetos se utiliza la clausula Is. Así mismo, también
se pueden comparar con Nothing.
Cuando asignamos a una variable de un determinado tipo, el cual es un objeto, y le
asignamos un objeto determinado, decimos que tenemos una instancia de este objeto.
3.16.3 CREACION DE INSTANCIAS DE OBJETOS.
Ahora el valor del objeto declarado no es Nothing, es un valor que se refiere a un objeto
físico.
Otra posibilidad es utilizar la clausula Set:
Set variableObjeto = New Objeto
Pero para hacer esto antes se ha tenido que definir la variableObjeto,con una sentencia
Dim
Ejemplo:
Dim elem AS MbeElement
...
Set elem = New MbeElement
...
Las coleccione de objetos son objetos que contiene otros objetos dentro, para acceder a
estos objetos se utilizan indices, que pueden ser (los índices) Strings o números. Se
comporta mas o menos como un Array unidimensional.
Ejemplo:
‘MbeViews es una colección de objetos MbeView
Dim currentView As MbeView
Dim num As Integer
Set currentView = MbeViews(7) ‘Asigna la vista 7 a currentView
currentView.pattern = True ‘la pone como activa
currentView.update ‘Redibuja la vista 7
For num = 1 To 8
If MbeViews(num).active <> 0 Then
Print “Vista “; num; “está activa.”
End If
Next num
Además de acceder a los objetos de la colección, poseen como cualquier otro objeto sus
propios métodos y propiedades.
Debido a su idoneidad, se exponen los datos del sistema como objetos, para manejarlos
de manera fácil. De esta manera manejar el entorno será llamar a los métodos y
propiedades de estos objetos. Estos objetos la única limitación que tienen es que no se
les puede utilizar en sentencias Set, ni utilizar comparaciones lógicas con ellos mediante
el operador Is. Tampoco se pueden declarara variables de su tipo ni crear variables
objeto y apuntarlas a ese objeto. Ejemplos de este tipo de objetos son MbeState, por
ejemplo.
Ejemplo:
Esta sentencia se debe poner en los procedimientos que creamos que pueden generar
errores de ejecución. Tras la etiqueta se pondrán las instrucciones a seguir cuando se
genera el error. Con esto creamos un handle del error (manejador).
Resume
En el manejador puede aparecer esta sentencia, la cual hace que se vuelva a la ejecución
en el punto en el que se generó. Se debe utilizar cuando el usuario es capaz de corregir
el error.
Resume Next
Resume etiqueta
Error NúmeroError
Donde NúmeroError es el código del error que se quiere devolver, que puede ser un
predefinido
o uno creado por el programador.
No se necesita saber en que unidades está el sistema. Todas las coordenadas se pasan a
tipo Double. Los puntos son del tipo MbePoint, que es el siguiente:
Type MbePoint
x As Double
y As Double
z As Double
End Type
Ahora hay que asignarle un elemento gráfico de algún tipo. Se puede hacer de dos
formas:
-Con el método fromFile que optiene un elemento gráfico del archivo de diseño
-Con el método fromLocate, que optiene el elemento que está seleccionado en el archivo
de
diseño
Lo siguiente muchas veces será determinar si el elemento es complejo o simple, para
esto se utiliza la propiedad de solo lectura isHeader
Si son simples, las manipulaciones son directas, se pueden utilizar sus atributos o
propiedades, tales como color, weight, style, level y class, determinar las propiedades de
su geometría usando getRange, getOrigin, getEndPoints y getPoints. Igual con texto,
que tienen sus propios métodos, tales como font, justification, charWidth, charHeight,
getString, etc...
Muchas de las propiedades son de solo lectura, de manera que se pueden consultar pero
no escribir en ellas. Ejemplos de propiedades de solo lectura son type, ejemplos de
propiedades de lectura escritura son color, level, weight, style, class y group. Cuando se
cambian estas propieades, y el elemento es complejo, se modifica el componente que es
el actual. Si queremos que se apliquen a todos tendremos que poner la propiedad
changeAll a TRUE.
Se utiliza MbeElementSet, para operarar con los elementos que están seleccionados, ya
sea un cercados o seleccionados por el usuario. Lo primero es declarar el elemento a
utilizar:
Con esto ya hemos declarado el objeto y reservado memoria para ellos. Ahora debemos
tomar los elementos para meterlos en el objeto, lo podemos hacer utilizando los
métodos del objeto
fromSeleccionSet y fromFence. Para obtener los diferentes elementos seleccionados,
utilizaremos getFirst y getNext, que nos devolverán objetos del tipo MbeSetMember,
que contienen la siguiente información:
Type MbeSetMember
filePos As Long
fileNum As Integer
End Type
Con esta información, podemos acceder a los elementos utilizando el método fromFile
de los objetos de tipo MbeElement
Una vez utilizados los elementos, liveraremos memoria utilizando el método clear.
Ejemplo:
Sub main
Dim elemSet As New MbeElementSet
Dim elem As New MbeElement
Dim setMem As MbeSetMember
Dim tieneElem As Integer
Dim pos As Long
If elemSet.fromSelectionSet(1) <> MBE_Success Then
Print “No hay nada seleccionado, probando con cercado”
If elemSet.fromFence() <> MBE_Success Then
Print “Tampoco hay nada seleccionado con cercado”
Exit Sub
Else.38
Print “Procesando el cercado”
End If
Else
Print “Procesando los elementos seleccionados”
End If
tieneElem = elemSet.getFirst (setMem)
Do While tieneElem = MBE_Success
pos = elem.fromFile (setMem.filePos,setMem.fileNum)
Call ProcessElement (0,element)
tieneElem = elemSet.getNExt (setMem)
Loop
End Sub
Se puede acceder a los ajustes y bloqueos para modificarlos mientras trabajamos con
elementos, utilizando el objeto predefinido MbeSettings (con lo que esto supone), que
posee métodos para cambiar los ajustes como color, colorName, lineStyle,
lineStyleName, weight, level, class, angle, font, fontName, gridUnits, gridReference,
textHeight ...
Cuando direccionamos un comando con MbeSendCommand o MbeSenDataPoint, para
saber si la operación se realizó correctamente o no, podemos utilizar la propiedad
cmdResult. Se puede determinar la posición del elemento seleccionado utilizando
locateFileNum y locateHeaderFilePos y locateComponentFilePos.
Además tiene propiedades de lectura/escritura para permitir o no si los mensaje se van a
mostrar al usuario (messages, errorMessages) así como para verirficar si hay elementos
gráficos dibujados en una vista.
Los resultados de una medida están el la propiedad de solo lectura measureResult y
measureResult2.
Tiene además métodos para controlar el proceso de selección de elementos
(locateClassMask, locatePropMask, locatePropVal, setLocateTypeMask,
setLocateFileMask) así como propiedades como locateTolerance.
Los objetos del tipo MbeView tiene propiedades de lectura/escritura para modificar las
vistas, tales como fastCurve, slowFont, noText, lineWeight, textNode...
Si la propiedad deferApply esta a FALSE (defecto), los cambios toman efecto
inmediantamente.
Si está a TRUE, toman efecto la próxima vez que se actualice la vista.
3.18.10 ACCESO A LA INFORMACIÓN DE LOS ARCHIVOS DE
REFERENCIA
·MbeSqlda
·MbeTable
·MbeDatabase
Mas adelante se explicará el comportamiento de estos tres objetos.
Podemos añadir a nuestras macros cajas de diálogo para que el usuario tenga una mayor
interacción con la macro, de manera que pueda configurar algunos parámetros,
seleccionar algo de una lista, etc...
MicroStation BASIC tiene algunas cajas de diálogo standard que se llaman con una
determinada función, y al hacer esto aparece la caja de diálogo, se realizan las
operaciones con ella, y la función devuelve un determinado valor. Las funciones que
son de este tipo son, entre otras:
Podemos crear nuestras propias cajas de diálogo, pero tienen algunas limitaciones:
-Las cajas de diálogo son modales: Mientras está la caja de diálogo en pantalla,
se para todo
lo demás, es la única que manda en el sistema.
-No tienen funciones para manejar eventos: Lo que realmente hace una caja de
diálogo es meter en una variable de la macro lo que el usuario ponga en un texto,
opción, etc...
-Los tipos de datos se asignan dinámicamente, y el contenido de cualquier
elemento de una caja de diálogo lo determina el tipo de la variable asociada a
esta.
Una vez definida la caja de diálogo, la podremos cargar utilizando la función
MbeOpenModalDialog.
Una caja de diálogo genera un archivo .BA al compilarla, si se borra este archivo se
pierda la caja de diálogo.
La ventana etiquetada como Constructor, contiene dos listas. Una de ellas, la superior
contiene una lista con todas la cajas de diálogo abiertas, la inferior contiene la
descripción de los elementos que contiene la caja seleccionada en la lista superior.
Los campos de la lista superior son título (nombre de la caja de diálogo), Id nº ( ) y
archivo (archivo físico que la contiene)
Los campos de la lista inferior son X (posicion en el eje X), Y (posición en el eje Y),
Anchura del elemento), Etiqueta (texto que la acompaña), Tipo (del elemento) Id (), EH
(puede ser M de modificado, N de nuevo, R de solo lectura o puede estar en blanco)
Aux ( ).
El menú diálogo
Nuevo
Se utiliza para crear una nueva caja de diálogo.
Cargar
Abre una caja de diálogo donde seleccionaremos el fichero desde donde deseamos
cargar la caja de diálogo, así como el modo en que la abrimos, o sea, dolo de lectura,
como copia del original.
Si se abre una caja de diálogo con un Id que ya está abierto, se abrirá una copia.
Cierra una caja de diálogo
Guardar
Guarda la caja de diálogo en su archivo, si no tenía un archivo especificado, se pedirá en
nombre
de este.
Guardar en archivo existente...
Guarda la caja de diálogo en un archivo ya existente, si se ha abierto como solo lectura,
no está habilitada.
Guardar en archivo nuevo...
Se guarda en un archivo que se pide al usuario.
Borrar
Borra la caja de diálogo seleccionada.
El menú edición
Ademas de las típicas de cualquier aplicación windows (copiar, pegar, cortar, borrar,
seleccionar todo), tiene las opciones de Poner delante y Poner detras, que se utilizan
para cuando se tiene varios controles uno encima de otro, determinar cual estará en
primer plano.
El menú opciones
Probar diálogo
Para cambiar el diálogo entre modo edición y modo prueba. El modo de edición es el
modo normal, en el cual se puede modificar el diálogo. En modo prueba, se muestra el
diálogo tal y como aparecerá al ejecutarse la macro.
Herramientas
Muestra u oculta la caja de herramientas para poner elementos.
Atributos de elemento...
Muestra una caja con los atributos de el elemento gráfico seleccionado (dependerán del
elemento seleccionado) También se pueden sacar los atributos de un elemento haciendo
doble click en este.
Atributos de diálogo...
Muestra una caja con los atributos de la caja de diálogo que seleccionemos (archivo
físico, altura,
anchura, título, identificador)
Preferencias
Muestra la caja de preferencias
El menú alineación
Cadena de acceso
Nombre de la variable que estará unida a este item. El valor de esta variable será lo
mostrado al mostrar la caja de diálogo, y el valor que introduzca el usuario el devuelto
al acabar.
CAJA DE TEXTO
Solo lectura
Etiqueta arriba
# de caracteres
Longitud de caracteres máxima
ETIQUETAS
Etiqueta
Texto de la etiqueta
Justificación
Fuente Negrita
BOTÓN TOGGLE
Area
Cadena de acceso con la que se realiza la operación lógica AND u OR. Si invertir está a
TRUE, se hace un OR con los bit de la variable de acceso. Si invertir está a FALSE, se
hace una AND de la variable de acceso con el complementario de la máscara.
Invertir
Sub Items
Lista con las diferentes opciones que se presentarán al usuario. Se incluye el texto de la
etiqueta, valor, mascara de comparación de bits y si aparecerá habilitado o desabilitado.
SELECTOR DE COLOR
Area
MAPA DE NIVELES
Cadena de Acceso
ELEMENTO DE ESCALA
Cantidad de incremento
Mínimo y Maximo
Formato de visualización
Mostrar valor
Tiene flechas
El valor que suma o resta cuando el usuario en vez de utilizar las flechas hace click en
los
espacios de la barra.
Limites en lado
GRUPOS
Sirven para poner un cercado alrededor de determinados elementos. El único atributo
que tienen
es una etiqueta de texto.
BOTÓN DE OPCIÓN
Son los típicos botones de opción con forma redondeada, que se suelen utilizar de
manera
mutuamente excluyente con otro grupo de botones de opción.
Area
Mascara con la que se comparan los bits indicados de la variable de acceso con el valor
especificado, si el elemento resulta seleccionado, si se desea que se compare la variable
entera, se
deberá dejar a FFFFFFFF
Valor
Lista de identificadores
Especifica un grupo de botones de opción, al cual queremos que se asocie nuestro botón
de
opción. De esta menera, el resultado será mutuamente exclusivo entre los que se
especifiquen en
la lista y el actual..