Cosmos. Nuevas funcionalidades de las vers. 2.5 y 3.0
A continuación se detallan las nuevas funcionalidades implementadas
en las versiones 2.5 y 3.0 de Cosmos.
- Se ha introducido la constante predefinida: «PI = 3,1416...»,
la cual puede ser utilizada en cualquier momento.
Editor visual
- En el editor de screen y en el editor de páginas de impresión
se puede consultar en cualquier momento las propiedades y eventos que
se pueden aplicar a un control.
Para obtener esta información proceda
de la siguiente manera:
- Seleccione el control que desee consultar.
- Ejecute la opción «Control information» del menú tipo
popup que aparece al pulsar con el botón derecho del ratón
sobre control de la screen/página de impresión.
- Aparece el cuadro de diálogo «Control information» que
muestra las propiedades y eventos que se pueden aplicar al control.
- Se puede compilar sin información de «debug».
- Se han añadido plantillas a los Wizard para poder generar páginas
con controles Band group.
- El editor visual permite generar la documentación de analista
de un proyecto.
- La ventana de output del editor visual ahora tiene tres páginas
para mostrar los mensajes del compilador, editor visual y generador de
documentación.
Editor de screen
- Nuevas opciones para manejar las paletas y barras de herramientas:
- La opción «Reset bars» del menu «View» restaura
el tamaño y la posición de las paletas y barras de herramientas
a los valores predefinidos.
- La opción «Auto hide bars» del menu «View» está activada
por defecto. Esta opción esconde o muestra las paletas y barras
de herramientas dependiendo de si la ventana que tiene el foco las utiliza.
Cuando esta opción no está activada las paletas están
siempre visibles, pero se muestran deshabilitadas las que no se pueden
utilizar.
- Esta versión incorpora los controles ActiveX.
Editor de páginas
Nuevo control Band group para imprimir por bandas.
Gramática
Se han añadido dos nuevas clases para poder manejar los controles
ActiveX:
- Clase ActiveX: La clase ActiveX permite crear
y manejar objetos de clases ActiveX. Los objetos ActiveX se pueden crear
de dos formas:
- Con los 3 métodos de la clase (CreateActiveXFromCLSID, CreateActiveXFromProgID
y CreateActiveXFromFile).
- Obtenerse como propiedades o argumentos de métodos de otros
objetos.
Una vez que se ha creado un objeto ActiveX se
podrá acceder a sus propiedades e invocar sus métodos. Los
objetos de la clase ActiveX permiten manejar controles ActiveX creándolos
de forma dinámica en ejecución, evitando tener que añadirlos
como controles gráficos en edición. Esto permite manejar
objetos ActiveX consumiendo menos recursos del sistema.
Los objetos de la clase ActiveX pueden utilizarse
en los casos en los que sea necesario obtener una propiedad o pasar un
argumento que sea un objeto ActiveX. De esta forma se resuelve la conversión
necesaria para poder acceder a objetos generados por otros objetos ActiveX.
Esta clase derivada de la clase Complex es instanciable.
- Clase Event: Esta clase está definida
para poder obtener la información asociada a un evento generado
por un control. Permite obtener de una forma flexible los datos relacionados
con un evento, como: control que ha producido el evento, nombre del evento
producido, número de argumentos que tiene el evento y estos mismos.
Para poder hacer uso de esta clase Event se
debe codificar el tratamiento del evento con la siguiente nueva sintaxis:
On[Event {ID|STRING}]
[Control {ID|STRING}]
[(ID as event)]
De esta forma, haciendo uso de STRING se consigue
tener la posibilidad de implementar eventos o controles que todavía
no están definidos. Haciendo uso de este formato conviene tener
especial cuidado a la hora de escribir los nombres, tanto de los eventos
como de los controles, pues si se escriben incorrectamente el procedimiento
asociado no se ejecutará, pues no se asociará a ningún
control o evento conocido. Si el evento o el control está especificado
mediante su ID, entonces sí será necesario que esté definido.
A su vez, no es obligatorio indicar para qué control
o para qué evento se está implementado el procedimiento.
Recibir un argumento de la clase Event también es opcional.
Esta clase derivada de la clase Complex es virtual.
Nuevos métodos de la clase
ActiveX
Los métodos de la clase ActiveX son:
- CreateActiveXFromCLSID: Crea un objeto ActiveX
a partir de su CLSID.
- CreateActiveXFromFile: Crea un objeto ActiveX
a partir de un fichero y el CLSID.
- CreateActiveXFromProgID: Crea un objeto ActiveX
a partir de su CLSID.
- GetCLSID: Devuelve el CLSID (Identificador
de clase) al que pertenece el objeto ActiveX.
- GetClassName: Devuelve el nombre de la clase
a la que pertenece el objeto ActiveX.
- GetProgID: Devuelve el ProgID de la clase
del objeto ActiveX.
- GetProperty: Obtiene el valor de una propiedad
del control.
- Invoke: Permite ejecutar el método
de un control pasando una lista de argumentos y recibir el valor de retorno.
- SetProperty: Establece el valor de una propiedad
del control.
Nuevos métodos de la clase Event
Métodos de la clase Event aplicables a cualquier control:
- GetArgument: Devuelve el valor del argumento
indicado del evento.
- GetItem: Devuelve el índice del elemento
del control que ha generado el evento.
- Getname: Devuelve el nombre del evento producido.
- GetNumberOfArguments: Devuelve el número
de argumentos que tiene un objeto de la clase Event.
- GetSource: Devuelve el control que ha generado
el evento.
Nuevos métodos de la clase
Control
Métodos de la clase control aplicables a los controles ActiveX:
- GetProperty: Este método obtiene el
valor de una propiedad del control ActiveX.
- Invoke: Permite ejecutar el método
de un control ActiveX pasando una lista de argumentos y recibir el valor
devuelto si se desea.
- SetProperty: Este método permite asignar
un valor a una propiedad del control ActiveX.
- ShowPropertiesDialog: Muestra el diálogo
donde aparecen las páginas de propiedades del control ActiveX,
si dispone de él. De esta forma se pueden modificar las propiedades
del control también en tiempo de ejecución.
- RemainingSpace: Esté método
retorna el espacio libre (en altura) de un control de tipo Band group.
Se debe utilizar esta función antes de llamar a AddBand para
determinar si hay espacio suficiente para añadir una banda al
control.
Nuevo método de
la clase SimpleControl
Método de la clase SimpleControl aplicable a los controles de impresión
de tipo Band group.
»