Archivo de la categoría: Noticias

Animaciones en Xailer 7

Las animaciones son clases que permiten establecer distintos tipos de animaciones en cualquier control visual. Su funcionamiento se basa en utilizar Futuros para de esta forma no provocar la congelación de la aplicación durante todo el tiempo que dure la animación. Para más información acerca de los futuros, consulte el artículo donde se trata.

Demo de animaciones en el canal de Xailer en YouTube

La clase base de todas las animaciones es TAnimation la cual ofrece toda funcionalidad necesaria para realizar cualquier tipo de animación. Existen dos clases que heredan de TAnimation que están especializadas en realizar la animación de una forma muy sencilla:

TAniNumProperty: Esta clase permite establecer la animación en base a una de las propiedades del control.

En este ejemplo puede entender perfectamente su comportamiento. El objeto TAniNumProperty controla la propiedad ‘nWidth‘ del control ‘oEdit1‘ y va modificar dicha propiedad desde su valor actual (lStartFromCurrent a verdadero) hasta un valor de 300 (nStopValue) y lo hará en un periodo de 1 segundo (nDuration). Todo el proceso comenzará en cuanto la propiedad lEnabled se encuentre a verdadero o ejecute su método Start(). Es así de fácil establecer una animación en cualquier control.

TAniControlSize: Esta clase permite establecer la animación en base a las dimensiones del control. Es decir, de su tamaño marcado por sus propiedades: nLeft, nTop, nWidth y nHeight. Su uso se restringe básicamente a modificar el tamaño de cualquier control desde una posición y tamaño inicial a una posición y tamaño final.

En este ejemplo puede entender perfectamente su comportamiento. El objeto TAniControlSize controla las dimensiones del control ‘oMemo1‘ y va modificar dichas dimensiones desde su valor actual (lStartFromCurrent a verdadero) hasta un valor de {96,48,300,200} (aStopValues) y lo hará en un periodo de 1 segundo (nDuration). Todo el proceso comenzará en cuanto la propiedad lEnabled se encuentre a verdadero o ejecute su método Start().

Ambas clases tienen además una serie de propiedades muy interesantes, que son:

  • nInterpolation: Esta propiedad permite establecer el tipo de animación. La forma más básica sería una interpolación lineal (aiLINEAR) que es la única existente en Xailer Personal y Xailer Professional. Xailer Enterprise dispone de muchos más tipos: rebote, explosión, elástica y circular.
  • nDelay: Permite establecer una demora en milisegundos en el inicio de la animación. Esta propiedad es muy útil cuando se pone la propiedad lEnabled a verdadero en el propio IDE y por lo tanto es necesario que se cargue y muestre el formulario antes de que se procese la animación.
  • lLoop: Si esta propiedad está a verdadero la animación comenzará de nuevo automáticamente cuando termine. Y por lo tanto la animación seguirá hasta que lEnabled pase a ser falso.
  • lReverse: Si esta propiedad está a verdadero se intercambian los valores de ‘Start‘ y ‘Stop
  • lAutoReverse: Esta propiedad permite que se haga una reversión automática cuando termine un ciclo, de tal forma que en el siguiente ciclo se convierte el efecto contrario. Esta propiedad conjuntada con la propiedad lLoop a verdadero provoca el clásico efecto de zoom in- zoom out.
  • nSyncsInSec: Esta propiedad permite establecer el número de sincronizaciones que se harán del control por segundo. Cuanto mayor sea este número, en principio, más suave y fluido se verá el movimiento, pero no es así. Dependerá de la velocidad de su PC y el trabajo que tenga que hacer la animación, ya que puede ser que arrastre a otros controles que también estén visibles.

Espero que estas animaciones sean de su agrado. Estarán disponibles en Xailer 7.

Exprimiendo el FOR EACH de Harbour

La cláusula FOR EACH que Harbour incorporó al lenguaje CA-Clipper fue una gran mejora, pero hay mucha gente que sólo lo utiliza de su forma más básica:

FOR EACH value IN aValues
  ? value
NEXT

Sin embargo ofrece multitud de posibilidades. Vamos a enumerar unas cuantas:

  • Iterar sobre más de una variable:
    FOR EACH a, b, c IN aVal, cVal, hVal
      ? a, b, c
    NEXT
  • Establecer orden descendente:
    FOR EACH a IN aVal DESCEND
      ? a
    NEXT
  • Asignar caracteres de una cadena de forma directa: (atención a la @)
    s := "abcdefghijk"
    FOR EACH c IN @s
      IF c $ "aei"
        c := Upper( c )
      ENDIF
    NEXT
    ? s // AbcdEfghIjk
  • Control por POO sobre las variables de iterador:
    • :__enumIndex() retorna el actual ordinal en la iteración. El equivalente a nFor
    • :__enumIsFirst() retorna si es el primer elemento en la iteración
    • :__enumIsLast() retorna si es el último elemento en la iteración
    • :__enumBase() retorna la variable base que está siendo procesada. Útil cuando se procesan más de una variable.
    • :__enumValue() retorna el valor de la variable que está siendo procesada. Útil cuando se procesan más de una variable.
      FOR EACH a IN aVal
        ? a:__enumIndex()
      NEX

Harbour incluso permite modificar como se debe de recorrer la iteración utilizando los métodos :__enumStart(), :__enumSkip() y :__EnumStop(). Tenéis un ejemplo de uso en el fichero \harbour\tests\foreach2.prg.

Espero que os haya sido de utilidad.

Un saludo

Xailer personal: ¡Completamente gratis!

Estimados usuarios de Xailer y Xbase en general,

Aprovechando estas fechas navideñas, hemos decidido ofrecer nuestra versión personal de Xailer completamente gratis y por tiempo ilimitado. Os recordamos que esta versión es completamente funcional e incluye todo lo necesario para realizar aplicaciones de gestión robustas utilizando cualquier RDD existente. Toda la potencia del IDE de Xailer, como son su rápido depurador, el soporte de intellisense y su facilidad en la creación de ejecutables, están disponibles para el programador.

Esperamos que esta oferta tenga una gran acogida y anime a muchos usuarios de [x]Harbour, Clipper y Visual FoxPro a probar nuestro entorno de desarrollo integrado para xBase. Estamos seguros que no defraudará. Os agradecemos de antemano la difusión que podáis hacer de esta noticia.

Un cordial saludo y ¡Felices Navidades!

Lanzamiento de Xailer 6.1.0

Estimados usuarios de Xailer,

Hoy publicamos una nueva versión de Xailer, la versión 6.1.0.

En esta nueva versión hemos actualizado la herramienta a las últimas versiones de todas las herramientas externas que usamos como pueden ser compiladores, editores de código o bases de datos. Se ha adaptado Xailer a las las últimas versiones de:

  • Harbour
  • MinGW
  • SQLite
  • Scintilla
  • MariaDB

Y se han añadido grandes mejoras, como son:

  • Soporte de eventos en controles ActiveX
  • Soporte completo de procedimientos almacenados para MariaDB y MySQL. Incluye la creación de clases que incorporan de forma automática todos los procedimientos almacenados existentes en un catálogo de bases de datos.
  • Nuevo control TGroupboxMod que es el clásico control TGroupbox pero vitaminado.
  • Increibles mejoras en el control TRichEdit que ahora incluye múltiples formatos de importación y exportación si necesidad de tener instalado Microsoft Office. Además de soportar transparencia.
  • Nueva propiedad de opacidad en gran cantidad de controles. Ya no sólo existe la posibilidad de poner transparencia si o no. Con Xailer 6 es posible establecer un nivel de opacidad por porcentaje.
  • Nuevo método ToExcel() que permite enviar desde cualquier control tipo TBrowse, su contenido a Excel (Debe de estar instalado Excel).

Para una lista completa de todas las mejoras puede consultar el siguiente enlace:
https://www.xailer.com/?lonuevo

Esta nueva versión de Xailer arranca directamente desde la versión 6.1 debido a que la versión 6.0 sólo ha estado disponible para beta-testers y durante un tiempo considerable. Posiblemente, esta nueva versión de Xailer es la que más haya sido probada antes de su publicación definitiva debido a la actualización realizada en todos las herramientas en las que se apoya nuestro producto. Esperamos que los posibles errores que se puedan encontrar sean mínimos. Y en cualquier caso serán corregidos rápidamente.

La nueva versión de Xailer y Harbour las puede encontrar en los siguientes enlaces:

http://www2.xailer.com/download/?es&file=1
http://www2.xailer.com/download/?es&file=2

Es necesario que reconstruya completamente todos sus proyectos, incluido cualquier librería estática o dinámica que esté utilizando.

Un cordial saludo,
[El equipo de Xailer]

Lanzamiento de Xailer 5.1.0

Estimados usuarios de Xailer,

Hoy publicamos una nueva actualización de Xailer, la versión 5.1.0 que básicamente corrige todos los errores encontrados hasta la fecha y se prepara internamente para el salto inminente a Xailer 6 que incorporará la última versión de Harbour, MinGW, SQLite, MySQL, MariaDB y Scintilla.  Más información en los siguientes enlaces:

https://www.xailer.com/?lonuevo
http://www2.xailer.com/download/?es&file=1

Un cordial saludo
[El equipo de Xailer]

Grandes descuentos por ‘Black friday’

Estimados usuarios,

Durante cuatro días y con motivo del famoso ‘Viernes negro’  y ‘Lunes cibernético’  vamos a ofrecer un 25 % en todos nuestros productos. Es una gran oportunidad para adquirir nuestra última versión de Xailer 5 Enterprise. Esta oferta no es acumulable con ninguna otra oferta. Esperamos que sea de vuestro interés.

Un cordial saludo
[El equipo de Xailer]

 

Lanzamiento de Xailer 5.0.2

Estimados usuarios de Xailer,

Hoy publicamos una nueva actualización de Xailer, la versión 5.0.2 que básicamente corrige todos los errores que nos habéis encontrado, aunque también incluye alguna mejora y un buen ejemplo de creación de miniaturas que esperamos os guste.

Más información en los siguientes enlaces:

https://www.xailer.com/?lonuevo
http://www2.xailer.com/download/?es&file=1

Un cordial saludo
[El equipo de Xailer]

Lanzamiento de Xailer 5.0.1

Estimados usuarios de Xailer,

Hoy hemos publicado una nueva versión de Xailer que incorpora toda la documentación y resuelve algunos problemas de la primera versión 5.0.0.

Muchas gracias a todos los que habéis colaborado en la localización de problemas.

Podéis descargar la nueva versión desde el siguiente enlace:

http://www2.xailer.com/download/?es&file=1

Un cordial saludo
[El equipo de Xailer]