Clarion
 

Características y mejoras de Clarion 6.2

 
 

Clarion 6.2

Mejoras en los drivers
Mejoras relacionadas con otros drivers
Mejoras ABC
Mejoras al FileManager
Mejoras en el control de texto
enriquecido.
Mejoras al FileDialog.
Templates and supporting Classes.
Mejoras Generales
Mejoras en el Debugger

Templates Centrales (Ambos Nuevos y Mejorados)

Dos nuevos y útiles Templates han sido añadidos a ambas familias de Templates (ABC y Clarion Legacy) basados en los requerimientos enviados al equipo de soporte de Softvelocity.

Shutdown w/Windows

Permite que su aplicación responda al mensaje OS shutdown (apagar Sistema Operativo) y si usted elige llamar al Template Clean Closedown cierra su aplicación incluso si hay una forma de entrada de datos abierta. Y el Template “Minimize to System Tray” permite a su aplicación mostrarse como icono la parte derecha de la barra de tareas de Windows.

Clean Closedown Template

Otro Template Nuevo es “Clean Closedown Template”. Este Template le permite a usted de forma simple y segura cerrar aplicaciones complejas que abarcan múltiples DLL’S relacionados. Había numerosos requerimientos para manejar esta situación, los cuales por la misma naturaleza de un multi-threaded, los multi-dll de una aplicación no podían ser manejados con seguridad por la función incorporada HALT().

MultiChild Tree Template

Este es un novedoso Template de funcionalidad increíble. Como el estándar RelationTree, el control MultichildRelationTree provee una lista que despliega datos en un árbol jerárquico. Aún cuando el Template Multichild permite vincular múltiples tablas hijas al mismo nivel de la tabla maestra, va más allá, permite también tener múltiples tablas maestras desplegadas y cada tabla maestra puede tener su propio árbol de archivos relacionados.

Enter by TAB Template

Se han implementado algunas grandes mejoras para la ayuda del Template EnterByTab. Si usted tiene la necesidad de proporcionar la navegación en pantalla al estilo DOS en sus aplicaciones, usted realmente apreciará las mejoras proporcionadas por este Template nuevo y mejorado.

Trigger support en la cadena Clarion

Existe ahora soporte de triggers en el diccionario de la cadena de Templates Clarion. Después de que usted escriba su código en el trigger de diccionario, abra su aplicación, vaya al cuadro de dialogo de propiedades globales y en la pestaña “File Control Tab”, marque la casilla “Enable Triggers Support”. Esto es todo lo que tiene que hacer para aprovechar la gran funcionalidad proporcionada por los triggers del lado del cliente.

 

Mejoras en los drivers

SQL driver(s).

Con la liberación de Clarion 6.2, los usuarios de Clarion ahora verdaderamente tienen lo mejor de ambos mundos. Acceso optimizado a SQL sin tener que escribir una sola línea de SQL, y ahora la opción de utilizar cualquier característica de SQL o procedimientos almacenados con las estructuras estándares de los archivos de Clarion y buffers de registro.

Todos los drivers SQL ahora soportan el nuevo atributo “/TurboSQL” (con la excepción del driver de Oracle). Usando esta nueva opción, le permite implementar fácilmente sus queries y actualizaciones SQL, conservando todos los beneficios del SQL driver layer.

Ahora en la versión 6.2 con el uso de TurboSQL usted puede definir cualquier estructura de archivo que necesite y el driver no verificará que las tablas ni las columnas definidas en el FILE definition, existan en el servidor. Obviamente esto puede incrementar el desempeño en algunas aplicaciones que ABREN muchas tablas con un enorme numero de columnas. Pero el uso más significativo de esta nueva característica, es que ahora usted puede definir estructuras de ARCHIVO que contengan campos calculados o almacenen resultados de funciones agregadas o puedan ser usadas con cualquier procedimiento de almacenamiento que pudiera regresar o no un set resultado.

Btrieve driver

El driver Btrieve ha sido actualizado para permitir a su aplicación especificar el Client ID usado en las llamadas API al driver Btrieve para identificar de manera única la aplicación cliente. El Client ID puede ser usado para ayudar a monitorear la actividad Btrieve, así como rechazar una situación sin salida (deadlock) dentro del Microkernel Btrieve si accesan simultáneamente múltiples threads al Microkernel.

Para indicar el Client ID solo añada /CLIENTID=xx a la cadena del driver en el primer archivo Btrieve que usted utilice. Donde xx es el ID que desea poner. Esto esta limitado a 2 caracteres. Usted puede utilizar el comando SEND antes en cualquier archivo I/O para indicar este valor y usted puede también usar SEND para leer el valor de ID.

Mejoras adicionales; Ahora todos lo errores de código de Btrieve serán mostrados como mensajes de error apropiados hasta el 2007.

 

Mejoras relacionadas con otros drivers.

Se ha agregado ayudas para el sincronizador del diccionario para trabajar con el servidor POSTGRESQL. También se hizo mas seguro el sincronizador ODBC con respecto a la dirección de todas las respuesta no estándares de SQL backends

Arreglos a errores del Driver

Fue encontrado que llamar NULL (Archivo, Campo) causaría un error de vinculación,
  si usted vinculo en modo DLL.
Fue reportado que registros fantasma aparecían en algunas ocasiones en los
  browses que usaron archivos SQL y tenían habilitado el BUFFER statement habilitado para almacenar viejos registros. Esto se reprodujo y se corrigió.
Para usuarios de DBMS Oracle, se encontró que llamando a procedimiento
  almacenado de el formato user.function o package.function podría generar codigo SQL invalido. Se reprodujo y se corrigió.
Este error es raro, pero afecto a todos los driver basados en SQL. Si usted pasa
una función SQL como un parámetro a un procedimiento almacenado y el nombre de esa función comenzara con “C” o con “N”, codigo SQL invalido podria ser generado por los drivers.
En la capa ADO viendo en el objeto CCOmmand se encontró que los parámetros
erroneos fueron usados en llamar a el AttachConnPoint en método. También corregido, el ADO class CCommand15 fue derivado hacia el COMObjectUser en ves de CADO.

 

Mejoras ABC

BreakManager Class

El breakManagerClass tiene soporte para dos Nuevo tipos totales: SumProd y Weighted Average.

Filtered Locator Enhancements

El ABC FilteredLocator tiene una nueva propiedad: UseFreeElementOnly. Si esta propiedad es verdadera (valor por default) el localizador utilizará solo el elemento Free Key, si este es falso usara el campo asignado como un elemento libre.

Edit in Place Enhancement

La clase MUltiselect EIP tiene nuevo métodos: Serialize Value y DeSerializae Value y un nuevo atributo Delimiter CSTRING(10).

 

Mejoras al FileManager

Se han implementado nuevos metodos para colocar/conseguir el OpenMode (SetOpenmode and GetOpenMode). Anteriormente usted no tenía la disponibilidad de cambiar al OpenMode (compartir, acceso exclusivo, etc.) porque solo el inicio de OpenMode era utilizado. Ahora con estos nuevos métodos el desarrollador podrá cambiar fácilmente el OpenMode antes de abrir el archivo.

Clarion Runtime

Se ha implementado una mejora en la ejecución para aplicaciones MDI-based donde se ha optimizado el número global de mutex’s (Mutual exclusion) creados para hacer el manejo del Sistema Operativo MDI seguro.

También se han implementado soluciones alternas para estas ediciones de Sistema Operativo

Se encontró que el FILEDIALOG del sistema operativo puede trabajar incorrectamente
  si el archivo nombrado de inicio era mas grande de 127 caracteres.
EL RTL ahora ajusta el Tamaño/Posición del largo y popup de las ventanas de
  Windows durante su apertura de acuerdo a la resolución del monitor si esta se hace más grande que el área visible en pantalla.

Hay un error en el sistema operativo Windows cuando se da un doble clic en el

  menú de sistema de una ventana hija en ejecución en un diferente thread que sea la ventana madre de Windows. Se encontró un manera para hacer que esto opere correctamente.
Otra mejora en el manejo de Date/Time fue implementada. El RTL ahora distingue un
  valor 0 de un valor extraño en los tipos de componentes de dato y tiempo. P.Ej. deformat(’00:00’,@t01) regresa 0 pero podría regresar un 1.

Clarion RTL Windows Handling

Varios cambios y arreglos fueron implementados en esta área

El RTL ahora evita publicar mensajes adicionales de WM_SETFOCUS si un SELECT
  se uso antes de un ciclo completo de ACCEPT.
Arreglo en la posible perdida del fuente utilizado en los MessageBox’s.

El RTL ahora genera el evento EVENT:Selected sobre la reselección del control

  Seleccionado.
Corregido el problema cuando se coloca el foco a un control dado después de que
  Windows se abrió por el que debería ser retrasado hasta que el primer WM_SETFOCUS se recibió por la misma ventana de Windows.
El ajuste de POP:VScollPos no habia sido previamente implementado.
EL RTL ahora previene la selección de pestañas deshabilitadas.
Todos los controles CLONEDd ahora adquieren los atributos de visibilidad de ellos
  mismos sobre su creación.
Al navegar entre Pestañas (TABS) si la pestaña anterior no tenía ningún control con el
  foco y no había otros controles visibles y controles habilitados con foco en la ventana, el foco no se colocaba a controles en cualquier nuevo TAB seleccionado.
Se encontró que los botones de texto no podrían ser duplicados con un CLONE de un
  botón.
Había un posible GPF si un caso de la Ventana Maestra fue declarado con el atributo
  AUTO.
Se reparó una miscelánea de problemas con el uso oculto de ventanas hijas de
  Windows.
Se encontró que aplicaciones multi-threaded MDI-based podrían congelarse al cerrar
  la ventana frame Si el Toolbar global tenía controles con atributos STD.
Las banderas RTL podría permanecer sin cambio si una ventana MDI hija se abría
  maximizada mientras todas las demás ventanas MDI hijas no fueron maximizadas.

 

Mejoras en el control de texto enriquecido

Existe ayuda nueva para la traducción de los controles RTF del menú contextual estándar usando el nuevo método RTFControlClass’s ContextMenuTranslate. Trabajo mejorado con efectos de fuente en el control RTF y manejo de fuentes y colores de fondo.

Algunos errores corregidos:

Al cambiar el contenido de un campo que es fuente de datos de un control RTF el
  texto desplegado en el control RTF puede desplazarse hacía abajo.
Fue encontrado que si el método RTFHandler.GetText fue llamado omitiendo
  parámetros podría fallar en el regreso de los datos.

 

Mejoras al FileDialog

Como mejora adicional para la versión 6.2, dos nuevas banderas son soportadas:

FILE:CreatePrompt (40H) – Si se especifico, y el nombre del archivo no existe, el
  dialogo permite al usuario crear el archivo con el nombre especificado en el dialogo.
FILE: AddExtension (80HD) – Si esta bandera fue especificada y el nombre del
  archivo fue grabado sin una extensión, la extensión por default es añadida.

Funcionamiento General del RTL

Correcciones y mejoras:

Adición de más checks que evitan GPF’s que puedan ocurrir en intentos de usar

  variables de tipo ANY que son puestas en nulo.
GETREG() no cierra una llave de registro abierta.
El FEQ de una barra de herramientas clonada no fue apropiadamente apagada.
Mejoras en la seguridad de código ejecutado en cambios de la altura la barra de
  status de una actividad de la ventana MDI hija.
Corregida la posible formación de ciclos en tablas Hash en Queues.
Reparado la perdida de memoria en la reproducción de queue-based list boxes
Corregida la inconsistencia en las funciones LEFT() y CENTER().
Reparado el problema bajo W9x/Me y NT4 donde cambiaba el parámetro del atributo
  OVER.
El nombre del mes podía ser truncado cambiando sobre el valor de la variable USE
para controles ENTRY, SPIN o COMBO con mascaras @D4 o @D18.

 

Templates and supporting Classes.

Mejoras Generales

Edit in place: EL atributo IMM en un DropCombo puede ser colocado en el Template

Una nueva clase: EL WindowExtenderClass. Esta clase tiene métodos para
  subclases a Windows y agrega ayudas al Shutdown y el TrayIcon.
Las cadenas de ambos ABC y Clarion tienen una nueva extensión al Template:
  FrameExtension. Este Template añade el soporte de apagado (shutdown) y la bandeja de iconos (trayicon) al frame de aplicaciones.
Un nuevo método en la clase QueryVisual: OVerrideResize. Este es un método virtual
  puro que es derivado en QueryFormVisual y QueryListVisual. Este método es llamado desde el TakeWindowEvent en el EVENT:openWindows para colocar el cambio de tamaño estratégicamente usando SELF.Resizer.SetStrategy para cada control agregado en la clase visual derivada
En el XMLCLASS, el método ADDRow es ahora un método virtual
En la clase FileManager la propiedad OpenMode esta ahora protegida;
  desarrolladores podrían usar el metodo SetOpenMode/getOpenMode en lugar de direccionar los cambios a la propiedad OpenMode.
La clase Ascii ha sido modificada y soprta archivos con nombres largos.
La clase Graph ha mejorado intercambiando valores de los ejes.
En el display para AutoBind el desarrollador define entradas que fueron ordenadas
alfabéticamente, ahora el usuario puede cambiar el orden del ordenamiento.

Algunos Errores Corregidos.

Rango limitado de browses ABC podrían no trabajar correctamente si el archivo en

  uso fue TopSpeed y la llave del browse fue ordenada de forma no sensitiva y había un registro en el archivo el cual uso un campo en el rango limite que contenía un valor final en cualquiera de estos [,\,]^,_or’.
Edit in Place, cuando es usado para un Droplist y brinco a la siguiente columna
  cuando la tecla Tab estaba presionada.
La implementación del SortHeader no fue ordenada correctamente cuando el atributo
  NoCase fue falso en tablas SQL.
Los HTML lexer podían desplegar basura en los mensajes de error si un símbolo
  inesperado era encontrado.
Corregido el problema en Edit-in-Place en el cual Multiselect no era puesto atrás de
  los valores seleccionados.
Estilos ABC/Clarion: Código generado para asignar los estilos que usaron
  %WindowsStyles en lugar de INSTANCE.
Estabilizado el problema donde en la clase ABQuery no aplicaba el cambio de
  tamaño correctamente.
Reparado en problema en el QueryCenter donde el código generado en el Event:Drag
  no trabajaba con el listbox format manager.
El ABC FilteredLocator: No trabajaba cuando se usaba con u grupo como un Key
  Component.
Corregido el problema en el ReportBreakManager donde los embeds After y Before
eran repetidos para todos los niveles.

 

Mejoras en el Debugger

En la versión 6.2 hay una nueva ventana “Thread List” en el debugger y con ella la habilidad de seleccionar cualquier thread de ejecución y suspenderlo o desplegarlo en la ventana del stack trace. Esta nueva capacidad será muy útil en la depuración de aplicaciones multi-threaded.

 

Póngase en contacto con Nosotros.
Gopac, Soluciones Integrales.
Av. Cubilete No. 800-11,
Col. Chapalita, Zapopan, Jal. CP. 45040.
Tel: (0133) 3122 1947 Fax: (0133) 3121 4989.
ventas@gopac.com.mx
www.gopac.com.mx
Si consideras que este correo es interesante o importante para otra persona te invitamos a que se lo envíes. Gracias.