jueves, diciembre 14, 2006

Xailer Ver. 1.2a y Xailer.info

Creo que como siempre llego tarde a los comentarios, pero me he ido 10 días a Barcelona y me he perdido de algunas cosas muy interesantes.

La primera es el lanzamiento del blog "oficial" de Xailer, hace tiempo comentaba en el artículo La Necesidad de Bloggear que un blog era una buena idea para dara a conocer características de un producto, y para obtener de los lectores una retroalimentación difícil de obtener por otros medios, es es el objetivo de Xailer.info, dar a conocer tips, trucos, pedir mejoras y nuevas características, vamos, crear una comunidad entorno a un producto.

También quiero agradecer a Ignacio y a Jose por haberme invitado a participar en Xailer.info y con gusto lo haré, ya que voy a escribir reseñas de productos de terceros que se puedan utilizar con Xailer ya sea como DLL, como OCX, como COM, etc, hay muchos juguetes nuevos para utilizar con Xailer.

De la mano de lo anterior, la segunda cosa que quería comentar, es la liberación de la versión 1.2a de Xailer, este año hemos tenido 2 revisiones muy interesantes de Xailer, que dia con dia va ganando mas adeptos y demostrando que facil es programar usando su filosofía totalmente orientada a objetos.

En el release mas reciente de Xailer, la 1.2a, contiene una herramienta que vale oro desde mi punto de vista, y que es el "impotador" de ActiveX, que te ahorra miles de horas de tiempo "investigando" como funciona y que propiedades tiene un ActiveX, especialmente cuando no tienes el manual a mano.

El importador funciona asi:

1) Desde la opción COMPONENTES del menú principal seleccionamos IMPORTAR ACTIVEX, aparece luego este formulario con la lista de TODOS los ActiveX que tengamos instalados en nuestro equipo:



2) Seleccionamos el ActiveX que deseemos y le decimos a Xailer que cree una clase pulsando el botón CREAR CLASE y ¡ listo !, Xailer creará 2 archivos para nosotros, un archivo .CH con todas las constantes predefinidas necesarias para el uso de ese control ActiveX:

/* RMC_Colors */
#xtranslate AliceBlue -984833
#xtranslate AntiqueWhite -332841
#xtranslate Aquamarine -8388652
#xtranslate ArmyGreen -10053274
#xtranslate AutumnOrange -39373
#xtranslate AvocadoGreen -10053325
#xtranslate Azure -983041
#xtranslate BabyBlue -10053121
#xtranslate BananaYellow -3355597
#xtranslate Beige -657956
#xtranslate Bisque -6972
......


Y también creará de la mano de lo anterior, una clase de Xailer, heredada de la clase OCX para poder manipular los eventos que puede tener dicho control:

#include "Xailer.ch"
#include "RMChartX.ch"

CLASS TRMChartX FROM TOcx

PROPERTY cCLSID INIT "RMChart.RMChartX"

PUBLISHED:

EVENT MouseDown( @nButton, @nShift, @nx, @ny, @utINFO )

EVENT MouseUp( @nButton, @nShift, @nx, @ny, @utINFO )

EVENT MouseMove( @nButton, @nShift, @nx, @ny, @utINFO )

EVENT DblClick()

EVENT MouseDownA( @nButton, @nShift, @nx, @ny, poInfo )

EVENT MouseUpA( @nButton, @nShift, @nx, @ny, poInfo )

EVENT MouseMoveA( @nButton, @nShift, @nx, @ny, poInfo )

PUBLIC:

ENDCLASS


El resto es coser y cantar, una vez "importada" la definicion del ActiveX a nuestro IDE de Xailer, usarlo en nuestro propio código es super facil:

Creamos desde el IDE el formulario contenedor del ActiveX, y agregamos "manualmente" en el código fuente, una llamada al archivo CH creado por Xailer y un "componente" para hacer referencia al control:

#include "Xailer.ch"
#include "RMChartX.ch"

CLASS TForm2 FROM TForm

PROPERTY nType INIT 1

COMPONENT oChart

METHOD CreateForm()
METHOD FormInitialize( oSender )
METHOD Test1()
METHOD Test2()
METHOD Test3()

ENDCLASS


Estas líneas tienen que agregarse manualmente de momento, en futuras versiones, Xailer será capaz de poner el componente ActiveX como una pestaña mas de la barra de controles y podrás manipular sus propiedades desde el inspector de propiedades, pudiendo incluso, ver como va quedando el diseño de tu control ActiveX.

Finalmente, para hacer aparecer el ActiveX dentro del formulario Xailer recurrimos al evento OnInitialize del formulario para configurar el control, nota que la llamada al metodo constructor, hace referencia a la clase previamente creada por el importador de ActiveX de Xailer:

METHOD FormInitialize( oSender ) CLASS TForm2

WITH OBJECT ::oChart := TRMChartX():New( Self )
:nAlign := alCLIENT
:Create()
END

IF ::nType == 1
::Test1()
ELSEIF ::nType == 2
::Test2()
ELSEIF ::nType == 3
::Test3()
ENDIF

::nClientWidth := ::oChart:RMCWidth
::nClientHeight := ::oChart:RMCHeight

RETURN Nil


El metodo constructor recibe como parámetro el objeto contenedor del control, y MUY IMPORTANTE, llamar al evento :CREATE() para poder visualizar el control.

Listo, tenemos acceso desde ese momento a todas las propiedades y eventos del control ActiveX, todo hecho en unos cuantos clicks del mouse.

Esto cada vez se esta poniendo mejor, ¿ que nos falta por ver todavía ?.

No hay comentarios.: