Archivo del Autor: Bingen

tCalendar Nuevo control para Xailer

Tras el curso rápido de controles visto en Madrid hace 2 semanas he conseguido rematar este control que llevaba tiempo dando vueltas por mi disco y mi cabeza.

Este nuevo control es una hoja de calendario polivalente ya que puede adoptar diferentes formatos y tamaños.

En su estado natural recién puesta sobre un form se mostraría así:

Se puede incluir un texto en cada celda, que en el caso de no caber se trunca, pero se muestra completo en el Tooltip que aparece al parar el ratón sobre ella.

También puede contener un pequeño icono de 16×16.

Pero si redimensionamos el control haciéndolo más pequeño, ya no cabrán los textos e iconos y entonces se muestra con números más grandes, aunque conservando los tooltip.

Más pequeño todavía:

Es multidioma y se puede navegar por los meses y los años con los botones de su derecha o volver al día actual que se muestra siempre arriba a la izquierda.

Permite establecer multitud de parámetros como por ejemplo:

aDayEvents: Array de días a mostrar con formato {dDia, cTexto, nColor, nIcono }

dDate: Fecha de partida

dMaxDate: Hasta que fecha se deja avanzar

dMinDate: Hasta que fecha se deja retroceder

nClrDay: Color del texto de los días normales fuera de aDayEvents

nClrMonth: Color de la letra de los meses

nClrPane y nClrPaneEnd: Para el degradado

nClrPaneHeader: Color de fondo de la cabecera

nClrPaneSundays: Color de fondo de los domingos

nClrSaturdays: Color de la letra de los sábados

nClrSundays: Color de la letra de los domingos

nClrText: Color general del texto

cClrYear: Color del texto del año

nLanguage: Idioma de los textos que puede ser

L_SPANISH    10

L_CATALA      3

L_ENGLISH     9

L_DEUTSCH     7

L_PORTUGUESE 22

L_EUSKERA    45

L_ITALIANO   16

L_GALEGO     86

L_FRANCAIS   12

oImagelist: Lista de iconos que se referencian después desde aDayEvents

Finalmente admite el evento OnClick para poder disparar un método para lo que se quiera hacer con el.

Espero que os guste y os sea útil.

La DLL y la librería para Xailer 3 con Hb y MinGw estan disponibles en:

http://www.xailer.com/download?es&cat=4

Salu2.

Messages para Xailer

Hace tiempo que no os dejaba una revisión de los mensajes para Xailer que muchos de vosotros usais en vuestros proyectos.

Novedades.

Algunos pequeños Bug de cálculos de tamaños de forms resueltos.

OJO MsgOptions ha cambiado de orden sus parámetros por compatibilidad con el resto de mensajes.

Nuevo MsgListCheck para selección de opciones con checkbox.

marcas-de-vehiculos.png

El enlace http://www.bisoft.es/Demos/Messages/Mensajes.rar

Salu2

Gestión de cámaras IP con Xailer

Me comentaba el otro día el amigo Paco Viruete, un gran tipo dicho sea de paso, la necesidad de acceder a cámaras IP de vigilancia desde una aplicación Xailer y ¿por que no?.

Aquí teneis un ejemplo de como integrar hasta 4 cámaras Ip al mismo tiempo en un form de Xailer y las 4 en movimiento claro.

Control de cámaras con Xailer

NOTA IMPORTANTE: las cámaras son de la marca Axis (http://www.axis.com/) ya que utilizo el controlador para desarrollo que se distribuye con ellas y debemos de conocer sus IPs.

Para quien quiera probarlo aquí le dejo el proyecto completo y unas utilidades extra.

 http://www.bisoft.es/Demos/Camara/Camara.rar

En la carpeta .Redist hay 2 ejecutables

1. AXISMediaControlSDK_redist.exe es el encargado de instalar los controladores de las cámaras para hacerlas accesibles desde programación.

2. IPUtility.Exe sirve para averiguar y/o cambiar las IPs de las cámaras en la red y sus nombres de usuario y contraseña, estos datos hay que suminstrarselos al programa en

CLASS TForm1 FROM TForm

Data cIpCamara1      Init «192.168.1.35»
Data cIpCamara2      Init «192.168.1.36»
Data cIpCamara3      Init «192.168.1.37»
Data cIpCamara4      Init «192.168.1.38»
Data cUserName       Init «root»
Data cUserPassword   Init «root»
Espero que le podaís sacar provecho e incluso implementeis cosas nuevas como grabación a disco, sonido, etc.

Salu2.

Gestión documental con Xailer. La clase tScanner

Ultimamente a todos los que os conozco en persona, me habéis mostrado algún interes en esta clase que preparé hace tiempo para poder escanear documentos directamente con Xailer y poder almacenarlos en archivos de múltiples tipos (Bmp, Jpg, Tiff multipágina, PDF multipágina, etc.) y/o cargarlos a campos Blob o Memo de bases de datos.

Pues bien, como lo prometido es deuda aquí os he preparado un ejemplo completo de como funciona esta clase.

Escanear un documento
Para comenzar se basa en un OCX comercial de costo reducido (unos 110 $Usd http://www.ciansoft.com/twaincontrolx/default.asp)  y distribuible con nuestras aplicaciones libre totalmente de royalties de por vida. Os adjunto una versión de prueba del OCX en mi ejemplo y por lo tanto con limitaciones como la de no poder grabar los escaneos efectuados.

Hemos probado esta clase tanto con escaneres sencillos de sobremesa, como en multifunciones de red de tamaños gigantes con escaneo en A3 color, alimentación automática de un centenar de páginas, escaneo a doble cara, etc. siempre ha funcionado correctamente.
Solo es necesario que el escaner tenga interfaz Twain, lo cual es lógico y común para cualquier escaner.

La clase se encarga de instalar y registrar automáticamente el OCX necesario, de localizar los escaneres disponibles y de comenzar a escanear.

Os adjunto el manual del OCX también para que podais ver el potencial de este.

Para aquellos que os decidais a comprar el producto final dos advertencias.

1.- Debeis de pedir la versión del OCX para xHarbour y Xailer (incluye una pequeña modificación sobre el original por temas de protección)

2.-  Debeis de cambiar en Scanner.Prg y en Twain.Prg cualquier referencia a  TwainControlXTrial.ocx por TwainControlX.ocx, que será el Ocx que habreís comprado y con el os servirán un Password que debeís de incluir en Scanner.Prg sustituyendo a  «demo» en     Data cPassword    Init «demo»

Espero que le saqueis provecho.

http://www.bisoft.es/Demos/Escaner/Escaner.rar

Nueva versión de Messages.Prg para Xailer

Aqui os dejo una nueva versión de Messages.Prg con su manual completo al día y que aparte de mejorar los mensajes anteriores añadiéndoles nuevas opciones, añade unos cuantos mensajes nuevos, con sus correspondientes ejemplos como siempre.

Mejoras:

Ajuste de las anchuras de MsgWaitOn y MsgWaitOnMeter

Añadido MsgSound para hacer que suene un Wav por los altavoces

Añadido a casi todos los mensajes que también puedan sonar un Wav

Nuevo mensaje MsgListCheck para mostrar un tree de checkboxes con texto;

Correcciones y cambios menores.

Espero que os sea tan util como a mi.

http://www.bisoft.es/Demos/Messages/Mensajes.rar

Salu2.

MIDAS Generador de reportes para Xailer y algo más

Por fin puedo presentar la Beta 1 de la primera parte de MIDAS, esto es, el generador de informes y el generador de formularios.

Aún estoy puliendo algunas cosillas pero ya es totalmente operativo.

Por las limitaciones que me impone este Blog me he visto obligado a hacer rápidamente una Web de la que podréis descargar todo lo necesario para probarlo.

www.binarygeneration.com

Espero que os guste el invento.

Salu2.

FormWizard una pequeña utilidad para Xailer.

Una de las mejores cosas que tenemos a nuestra disposición en Xailer, es poder diseñar nuestros Form con acceso a una base de datos usando DataControls de una forma muy sencilla.

Pero comentando el otro día, en la taberna entre dos vinos como hacemos los de Bilbao, el amigo David Marina me comentaba que le parecía curioso que no hubiera, como en otros IDEs de programación, algunos Wizard para hacer cosas elementales como un form con todos los campos de una tabla y tenía razón, así que le animé a que lo hiciera como ejercicio práctico y así comenzó esta pequeña historia que entre ambos hemos montado.

FormWizard es una utilidad que permite tomar un DBF (lo siento de momento no sabemos de SQL) y con todos sus campos o los indicados y en el orden deseado, mas otras florituras, genera un formulario con su PRG y XFM que guardaremos en la carpeta Source del proyecto en el que estamos y listo. Asigna los DataControl al control más lógico, los autoajusta al tamaño necesario, etc.

A continuación simplemente añadimos el recién creado PRG al proyecto (Proyecto – Añadir fichero al proyecto o el Icono correspondiente) y listo. Pulsando F12 podremos ver el formulario y modificarlo al gusto si nos apetece, ya que es lo mismo que si lo hubiéramos hecho a mano desde cero con el IDE.

Si además queremos usarlo con mas facilidad lo mejor es meter el ejecutable en la carpeta que queramos (yo lo he puesto en C:XailerBin) añadirlo al menú herramientas mediante la opción “Configurar herramientas” con los siguientes datos:

Herramienta FormWizard

Aunque no es una ayuda bárbara, esperamos que os guste y le saquéis provecho a nuestro regalo navideño. Proyecto FormWizard

Graficación en un formulario de Xailer con controles de terceros.

Continuando con el uso de controles OCX vamos ahora a ver como utilizar un control de terceros no presente directamente en el sistema operativo (como los vistos hasta ahora), esto quiere decir que habremos de instalarlo en cada PC del cliente donde queramos utilizarlo, aunque esto se puede automatizar como se verá mas adelante.

Este control es un generador de gráficos estadísticos de muy fácil manejo, pero de excelentes prestaciones, que además tiene la gran ventaja de ser gratuito ya que su autor lo ha donado de forma altruista al dominio público, es el control OCX llamado RMChart.

Ejemplo de RMChart

Sigue leyendo

Situémonos, usando GoogleMaps en nuestras aplicaciones.

En la línea de los anteriores ejemplos usando ActiveX, ahora presento un ejemplo más elaborado pero muy sencillo de utilizar al mismo tiempo, como integrar los mapas de localización de GoogleMaps en nuestras aplicaciones.

Para ello he construído la clase TGoogleMaps con la cuál he simplificado la integración del sistema en cualquier aplicación, basta con enlazar GoogleMaps.PRG con su XFM, además de WebBrowser.Prg y su CH (como se ha visto en capítulos anteriores) en la lista de ficheros del proyecto y con solo 5 líneas podemos presentar mapas de lo más vistoso en un formulario de Xailer.

De esta manera dotamos a nuestros programas de la posibilidad de poder localizar la dirección de un cliente, desde un botón en el formulario de clientes o la de crear un mapa con la ruta desde nuestras instalaciones hasta la dirección de entrega de un producto, calcular la distancia, etc.

Sigue leyendo

Siguiendo con OCX, nuevos ejemplos usando WebBrowser.

Como hemos visto en el ejemplo anterior podemos utilizar un control OCX que resulta ser un navegador Web incluido en un control de nuestro form y con esto podemos navegar por Internet.

Pero este control nos permite hacer bastantes más cosas, como todos sabemos desde una ventana de Internet también podemos abrir un HTML que se encuentra en el disco duro local del PC, pero no sólo esto sino que podemos usarlo para abrir otros tipos de archivos como puede ser un archivo Adobe Acrobat Reader, es decir un PDF ya que existe un ActiveX que se instala en el PC al instalar este programa y ni tan siquiera tenemos que preocuparnos de usar este ActiveX sino que el explorador de Internet se encarga de ello.

Veamos con detalle los ejemplos que incluye el de Xailer que aquí dejo a vuestra disposición. Proyecto

Sigue leyendo