Archivo por meses: marzo 2021

Un sencillo y útil Plug-In

Estimados usuarios de Xailer,

Desgraciadamente sois pocos los que habéis sacado partido del sistema de Plug-In que incorpora Xailer y realmente se ha realizado un gran esfuerzo. Os animamos a probarlo. Este artículo pretende iniciaros en el uso y creación de los mismos.

Un Plug-In es sencillamente una DLL que se carga con el propio IDE de Xailer y que puede realizar diversas tareas, como por ejemplo:

  • Añadir nuevas opciones en el IDE bien a través de menus o atajos de teclado que permiten realizar cualquier tipo de tarea o para establecer configuraciones especificas: Este es el caso del Plug-In ‘MoreOptions.dll‘ que permite establecer configuraciones adicionales del editor.
  • Realizar operaciones adicionales cuando se producen determinados eventos dentro del IDE.

Es necesario indicar en el IDE que se pretende utilizar un determinado Plug-In y para ello se utiliza la opción de menú Componentes->Gestor de Plugins. Los Plugins deben de encontrarse en el directorio \xailer\plugins. Desde esta opción podrá habilitar o deshabilitar cualquiera de ellos.

Cualquier Plug-In tiene un acceso muy relevante de todo el IDE y es posible desde el mismo acceder al editor de código, al editor de formularios, al proyecto activo, etcétera. En el siguiente enlace tenéis información de como utilizarlos. Está en inglés, pero espero que eso no sea un problema.

En la última versión de Xailer introdujimos un nuevo Plug-In de nombre ICIP_Plugin que entendemos puede ser muy útil y que además sirve para que os adentréis en el uso de los mismos. Este Plug-In en cuestión tiene un cometido muy básico, que consiste en establecer propiedades iniciales a los controles cuando se depositan en el formulario. Por ejemplo: si cada vez que instanciamos un control del tipo TMaskEdit ponemos su propiedad lZeroFill a .T., sería muy útil que esa operación se realizase automáticamente. Esta es la labor que realiza el Plug-In.

Podríamos haber creado un Plug-In con una configuración extensa desde el propio IDE , por la cual se pudiese establecer el valor inicial de cada propiedad para cada tipo de control, pero sería muy poco usable. Hemos preferido que todo el trabajo se haga por código desde el propio Plug-In. De esta forma conseguimos mucha más potencia y flexibilidad.

La tarea de nuestro Plug-In consiste en estar atento a cualquier operación de deposito de un control en un formulario y en dicho momento comprobar si tiene que actualizar alguna de las propiedades del mismo. Para ello, deberá capturar el evento apropiado, que en nuestro caso es «FE_AddControl» que recibe como primer parámetro el objeto depositado en el formulario. En ese momento comprobamos según el tipo de objeto que es si hay que actualizar alguna propiedad. Y eso es todo.

El proyecto completo de este Plug-In se encuentra en el directorio \samples\Plugins\ControlsInitProps. Es necesario que modifiquéis el proyecto según vuestras propias necesidades, pero sólo es necesario que adaptéis el método Run() que es muy sencillo. Este sería el código para TEditMask:lZeroFill:

METHOD Run( oControl, aSelection )
 IF oControl:IsKindOf( "TMaskEdit" )
  oControl:lZeroFill := .T.
 ENDIF
RETURN nil

En el propio proyecto podéis ver como se controlan más de un tipo de control y lo fácil que es adaptarlo a vuestras necesidades.

Independientemente de que el Plug-In esté cargado en el IDE es posible desactivarlo o activarlo desde de la opción de menú que él mismo integra bajo la opción de menú de Herramientas del IDE.

Espero que os parezca de utilidad, empecéis a usarlo y sobre todo os animéis a desarrollar vuestros propios Plugins.

Un saludo