Archivo

Archivo para Julio, 2012

Una quincena más… (30/07/2012)

Lunes, 30 de Julio de 2012 4 comentarios
Share Button

imagesRetomando un poco (o eso espero) el ritmo de las entradas, para los que estéis interesados  en FireMonkey y en las posibilidades de realizar animaciones y aplicaciones con características 3D, os remito al canal de youtube de ketufe. Podéis encontrar desde ejemplos sencillos y algunos no tanto. Los videos dan ideas de las diferentes posibilidades a utilizar. Hay mucho material para revisar, ya que el canal cuenta con más de 100 videos.

Aquí podemos encontrar un pequeño tutorial de Document Insight; La herramienta de documentación de DevJet Software que viene incluida de forma gratuita con Delphi XE2. Es una de aquellas cosas que no son fáciles de encontrar en la documentación (o que no encontramos directamente) pero que son tremendamente útiles, para los que desarrollamos componentes y librerías que luego utilizan otros programadores. En estos casos la documentación en necesaria (obligatoria diría yo) y además a la larga significa una mayor eficiencia a la hora de programar.

No hace muchos días de la publicación en la página de Salvador (Delphi básico) de dos entradas dedicadas al componente TTreeView en Firemonkey; Yo diría que indispensables para los que queráis empezar a trabajar con él y entender bien su funcionamiento.

Las dos entradas hacen un completo repaso de este componente de este componente y su utilización en Firemonkey. Las diferencias que existen entre este y su versión en la VCL, repasando propiedades, métodos y distintos comportamientos. Muy recomendable por lo compleja y extensa que es. La explicación es muy clara y podéis descargar los códigos de ejemplo para poder realizar las pruebas sin problemas. No os desvelo más del contenido del artículo, que lo hay, os invito a que lo reviséis completo. ;-)

 demo3

 

Esta semana, también ha visto la luz la siguiente versión de los componentes de Cadetill para trabajar con Google Maps. La librería GMLib; En este caso la versión 0.1.5a. Añaden bastantes correcciones y nuevas funcionalidades respecto a la anterior versión.

47_web20_320x240_gmlib 

“GMLib (Google Maps Library) son una serie de componentes para Delphi que encapsulan el API de Google Maps y así poder gestionar los mapas de Google de forma sencilla mostrando el resultado en un TWebBrowser.“

 

Siguiendo con el tema de FireMonkey, desde hace unos días podemos descargar desde la web de Embarcadero de una versión “free” de la herramienta de conversión entre VCL y FireMonkey llamada Mida. No he tenido tiempo de probarla, así que si alguien tiene oportunidad estaría bien que compartiera sus experiencias. Trabaja con componentes de terceros, además de los estándard, LiveBindings, Estilos y bastantes cosas más, aunque no todas disponibles en la versión gratuita.

Icarus_48También estos días se ha liberado la versión 3.4.4 de Icarus. Se trata de una utilidad gratuita de la casa Peganza (http://www.peganza.com) la misma que comercializa PAL (Pascal Analizer). Icarus es una “analizados de units”; Permite analizar el código de proyectos Delphi en busca de units no necesarias añadidas al uses o de aquellas que pueden ser movidas entre las secciones de Interface e Implementation.

Hoy mismo leo sobre la La versión 2.6 de las DDevExtensions se ha liberado estos días. Podéis descargarla para las diferentes versiones de los compiladores y leer sobre los cambios y correcciones de la última versión en este link (DDevExtensions 2.6). Gran trabajo que va mejorando versión a versión.

Poco a poco van apareciendo componentes nativos para FireMonkey. Es una tecnología nueva para los que trabajamos con las herramientas de Embarcadero y es normal que el arranque cueste un poco. Ya conocía un paquete de componentes específicos de la mano de TMS y estos días he leído que arcana también ha publicado Apesuite, una serie de componentes para FMX.
Siempre es una buena noticia que las empresas apuesten, se involucren y vaya generando componentes para FMX.

Por último os dejo esta completísima recopilación de reursos para FireMonkey. Si deseáis introduciros en este tema y empezar a hacer “pinitos” con esta tecnología debéis guardaros esta recopilación. Además de la propia documentación de Embarcadero, aquí podéis encontrar una amplia variedad de links que abarcan bastantes aspectos.

Introduction

Styles

What about the VCL?

Networking

IDE

Forms

File I/O

Video and sound

DataSnap

Controlling other programs

Printing

3D animation

Runtime packages and DLLs

Component development

Errors

Bugs

Third Party

 

    Un saludo y hasta la próxima.
Share Button
Categories: Delphi, FireMonkey, Resumen Tags: ,

Primeras experiencias con RADPHP

Miércoles, 11 de Julio de 2012 14 comentarios
Share Button

   28e58a2b951637c93dfd69d9e6031a11Llevaba tiempo con ganas de probar en entorno de Embarcadero para PHP y al final estos días he podido dedicarle algo de tiempo; Al menos e podido instalarlo, que ya es mucho y hacer unos primeros ejemplos…   ;-)

   Para los que estáis como yo en estos temas (bastante verdes) os iré comentando mis primeras impresiones y los problemas con los que me he ido encontrando.

   La primera impresión una vez instalado el entorno ha sido muy gratificante, simplemente por la imagen de ver los menús en castellano. Ya se que no es algo “importante” a nivel técnico, sobre todo para los que llevamos tiempo programando en los IDE’s de Dephi, pero sí es gratificante a nivel visual.Imagen1251     Junto con la instalación de RADPHP (en mi caso ha sido un paso previo, porque ya lo tenía), he instalado WAMPServer, que instala las últimas versiones de Apache, MySQL y PHP, además de un pequeño programita para gestionar los servicios, que a mi me es de gran utilidad. Hay otros programas similares que realizan la misma instalación, como por ejemplo XAMPP.

   Aparte del detalle de los menús, la primera impresión es que el entorno es conocido y eso tranquiliza y agiliza mucho los primeros pasos. Proyectos, opciones generales, ventanas de depuración, diferentes opciones de visualización y personalización,… todo está, donde uno espera que esté, al menos para los que ya estamos acostumbrados a este entorno.

Una vez que todo parece que está correcto, lo primero que un buen programador hace es generar su primer programa.
Imagen1256¿Cual? Seguramente el programa por antonomasia y generado en el mayor número de lenguajes: “El programa Hola mundo!”.

Generamos una aplicación PHP desde el menú de Archivo, y cuando nos aparece el diseño de la UNIT1, colocamos un botón (TButton) y una etiqueta (TLabel).

En el evento OnClick del botón programamos lo siguiente:

0
1
2
3
function Button1Click($sender, $params)
    {
      $this->Label1->Caption = 'Hola Mundo';
    }

Al ejecutar se nos abre el navegador con el botón y el Label y con un funcionamiento “normal” para lo programado. Nuestro primer programa ha sido todo un éxito.   ;-D

<DESCARGA DEL CÓDIGO FUENTE>

 

Conectar a Base de Datos.

El siguiente ejemplo que he probado es una conexión a Base de Datos. Para ello, RADPHP en la carpeta de Demos trae un Script de SQL con el que generar una Base de Datos de pruebas llamada osCommerce. Corremos el script en el servidor de MySQL y tenemos la Base de Datos creada al instante.

Antes de continuar debemos descomentar la siguiente línea en el fichero de configuración php.ini.template, si no lo está:

  • extension=php_mysql.dll 

    Si vamos a trabajar con otros SGBD’s debemos buscar las líneas similares y descomentarlas. Por ejemplo, en mi caso, para Microsoft SQL Server,  hay que hacerlo con la línea:

  • extension=php_mssql.dll

En el caso de SQL Server, podéis leer más detalles en esta página de la documentación online, junto con otras opciones de configuración y posibles problemas que pueden surgir. Es de suponer que con el resto de Bases de Datos funcione de la misma manera y siguiendo pasos similares para la configuración.

Para el ejemplo he colocado componentes de forma similar a como se haría en un formulario estándar de Delphi. Un TDatabase, un TTable y un TDatasource. Con el mismo sistema de conexión (propiedades). Por último un DbGrid para visualizar la tabla de Productos.Imagen1264

Basta con activar la tabla para comprobar que obtenemos los resultados esperados.

0
1
2
3
4
 function Button1Click($sender, $params)
    {
      // Cambiar el estado  abierto/cerrado
      $this-&gt;tblProductos-&gt;Active = ! ($this-&gt;tblProductos-&gt;Active);
    }

 

Imagen1265

<DESCARGA DEL CÓDIGO FUENTE>

 

Uso de Templates

Por último (al menos para esta entrada) me he puesto a probar los Templates.

Podemos integrar un formulario (componentes) generado en RADPHP con una plantilla HTML utilizando “Smarty Templates Engine”, que permite utilizar TAG’s en el HTML, que posteriormente se combinan con el formulario y los componentes diseñados con las plantillas. En la ayuda en línea de RADPHP podemos encontrar la explicación del procedimiento para realizarlo.

Primero diseñamos un formulario básico para realizar un Login. Algunos labels, un par de componentes de edición para el usuario y el password, un botón para el código de comprobación y poco más.

Imagen1259

El código básicamente comprueba que el usuario y contraseña sean los definidos como admin/1234 y visualiza una de las dos imágenes que hay a a derecha.

Si lo ejecutamos en el navegador podremos ver lo siguiente (como era de esperar):

Imagen1260

Lo siguiente que tenemos que hacer es diseñar un “template”; La plantilla que utilizaremos para visualizar lo que hemos diseñado. Para ellos Tenemos que definir un fichero HTML/CSS como lo haríamos normalmente; Una vez diseñado añadimos los siguientes TAG’s para que el “Engine” de Smarty pueda realizar su trabajo:

  • {%$HeaderCode%}:  En la parte de la cabecera.
  • {%$StartForm%}{%$EndForm%}: En la parte del BODY encerrando la sección donde aparecerán los componentes.
  • {%$Nombre_Componente%}: Para cada uno de los componentes que aparezcan en la plantilla.

Importante la nomenclatura; En algún ejemplo que hay en EDN está incorrecto y yo estuve un buen rato hasta que averigüé la correcta. En mi caso he diseñado un HTML/CSS con el siguiente contenido:

Fichero HTML con el Template de smarty  (código fuente) (fichero CSS)

Si vemos la plantilla en el navegador podemos apreciar algunos de los TAG’s que hemos comentado.

Imagen1261

Configuramos en el fichero PHP las propiedades TemplateEngine y TemplateFilename. Con esto es suficiente para poder ejecutar el ejemplo y que el resultado fusione el fichero PHP con nuestra plantilla HTML/CSS. El resultado en el navegador es este:

Imagen1262

Una vez tenemos completado el proyecto y funcionando desde el IDE, lo primero es hacer el Imagen1263“deployment” en el servidor Apache que tengo instalado en local. Para ello el propio IDE de Delphi cuenta con un asistente.  Desde el menú de herramientas lanzamos el “Asistente de despliegue”.

Este asistente nos pide el directorio donde se va a copiar la aplicación; En mi caso, es el directorio c:\wamp\www, y a partir de ahí, el asistente en función de los elementos utilizados en el proyecto, copia todo lo  necesario al directorio para poder ejecutar la aplicación.

Una vez hecho esto, hay que copiar manualmente la plantilla y añadir a la configuración de PHP el directorio donde se encuentran los ficheros. Al fichero PHP.INI, a la variable include_path , le añadimos el path del directorio rpcl.

En ejemplo se ha ejecutado también correctamente.

Finalmente, he subido el ejemplo al servidor donde tengo el blog, para ver si eran necesarias configuraciones adicionales. Ha bastado con copiar los mismos ficheros a un directorio de mi servidor. Podéis probarla desde aquí.

Enlaces:

Hasta aquí esta primera entrada referente a RADPHP. La impresión general ha sido muy buena.He obtenido algunos errores en el entorno (aunque hay que decir que mi máquina de pruebas está ya muy “trasteada” y no descarto que eso tenga algo que ver), y también he echado en falta documentación (tanto desde el IDE, como fuera de él), pero la impresión final ha sido buena.
Pensé que para alguien como yo, con conocimientos reducidos en este apartado, el primer contacto sería mucho más “duro”.  ;-D

Espero poder seguir avanzando es este tema.

Un saludo y hasta la próxima.

Share Button
Categories: Fácil, RADPHP Tags: ,