Formas Incrustadas FMX

Ésta entrada está basada en el ejemplo FMXEmbeddedForm (Delphi) localizado en la wiki de documentación de Embarcadero donde nos muestra como incrustar una forma dentro de otra y la intención de la presente entrada es desarrollar paso a paso la forma como hacerlo con Delphi XE7.

Y sin más preambulo comenzaremos creando una aplicación multi-dispositivo, para ello seleccionaremos en los proyectos de Delphi la opción Multi-Device Application.

FI-01

 

Posteriormente seleccionamos el tipo de aplicación multi-dispositivo, personalmente utilizo una aplicación en blanco.

FI-02

A continuación agregamos una nueva forma multi-dispositivo desde el menú File –> new –> Multi-Device Form – Delphi como se muestra en la siguiente figura.

FI-03

Elegimos el tipo de Forma HD y presionamos el botón OK.

FI-04

Antes de continuar guardamos nuestro proyecto, la unit1 la guardamos como uFormaPadre y la unit2 como uFirmaIncrustada, al proyecto le pueden asignar el nombre que deseen.

FI-05

Agramos a nuetra formaPadre dos componentes, 1 ToolBar con la propiedad Align = Top y 1 Panel con la propiedad Align = Client como se muestra en la siguente figura.

FI-06

En la formaIncrustada agregamos tres componentes, 1 TabControl con la propiedad Align = Client donde agregué 3 Tabs y dos TButton, ustedes pueden agregar los componentes que deseen, la idea es mostrar la forma con algunos componentes para poder observar fácilmente el efecto deseado.

FI-07

El siguiente paso es agregar la unidad uFormaIncrustada en nuestra formaPadre, para ello pueden hacerlo presionando Alt-F11 o en el menu File –> Use Unit o escribiendo manualmente la unidad en una sección Uses de la formaPadre.

FI-08

Adicionalmente agregamos un procedimiento llamado EmbeddedForm() en la sección Private de la clase Tfrm_Padre (TForm1 si no cambiaron el nombre de la forma) como se muestra en la siguente imagen, a continuación presionamos Ctrl + Shift + C para agregar nuestro procedimiento en la sección de implementación y escribimos el código que se realizará cuando se llame a dicho procedimiento.

FI-09

Ahora ya podemos hacer la llamada a  nuestro procedimiento, en éste caso  se ha decidido seguir el ejemplo de la Wiki de Embarcadero utilizando el evento OnCreate de la formaPadre, en la siguente figura se muestra dicha llamada.

Podemos observar que el procedimiento va a incrustar la formaIncrustada en el objeto Panel de la formaPadre en el momento que la aplicación se crea, ustedes pueden jugar con la formaPadre para ejecutar el procedimiento en el momento que lo deseen, incluso pueden agregar código a la formaIncrustada para que ejecute lo que deseen una vez que ya está incrustada en la formaPadre.

FI-10

En éste momento nuestra aplicación ya está lista para ser ejecutada en cualquiera de los dispositivos que desee y que están disponibles en DelphiXE7 , en mi caso lo hice para Android y para Windows 32Bits, pero se puede compilar sin problema para los demás y utilizando el mismo código por supuesto.

A continuación pueden ver la imagen en los dós dispositivos compilados.

FI-11
Android teléfono LG-P880
FI-12
Windows 32 Bits

Descargas


Si lo deseas puedes descargar el código fuente de ésta entrada, espero sea de utilidad.

Ésta entrada y el código fuente son libres para su uso y publicación, lo único que te pido, si te parece justo, es mencionar la fuente de donde se obtuvo.

Lo nuevo de FireMonkey en XE7 (TMultiView)

Hola

El día de hoy vamos a revisar un componente muy interesante llamado MultiView. Éste componente permite la implementación de interfaces gráficas maestro-detalle, es decir, el panel principal (master) contendrá los controles de la aplicación y el panel detalle (detail) muestra la información basada en los controles del panel maestro.

La siguiente pantalla muestra un ejemplo de interfaz maestro-detalle. En el panel principal (izquierda), se introduce una posición geográfica y en el panel de detalles (derecha) podrá ver el mapa Google apropiado.

703px-TMultiViewSample

Siguiendo el tutorial que se encuentra en la docwiki de embarcadero pude desarrollar la app para Android, que bien pudo haber sido para iOS o para Windows, o porque no, hacer una aplicación para todas y cada una de las plataformas, como lo hice con la serie de RAD Studio XE4.

Me parece un componente muy interesante y muy sencillo de utilizar, el panel de controles se oculta automáticamente y se muestra deslizando el borde de la pantalla, algo como se muestra en la siguiente imagen:

800px-TMultiView_Drawer

Así quedó mi diseño siguiendo el ya mencionado tutorial:

Los invito a poner en marcha su imaginación y desarrollen alguna aplicación con éste componente, les aseguro que quedarán gratamente sorprendidos,

Nos leemos.

Descargas


Si lo deseas puedes descargar el código fuente de ésta entrada, espero sea de utilidad.


Ésta entrada y el código fuente son libres para su uso y publicación, lo único que te pido, si te parece justo, es mencionar la fuente de donde se obtuvo.

Lo nuevo de FireMonkey en XE7

Hola amigos

Vamos a ver en varias entradas los cambios que se han hecho con el lanzamiento de RAD Studio XE7 pero específicamente los cambios hechos a FireMonkey.

En XE6 se tenía que elegir entre tres tipos de aplicaciones FireMonkey, aplicaciones de escritorio, Aplicaciones Metrópolis y aplicaciones móviles como lo podemos observar en el IDE de XE6.

En RAD Studio XE7 se ha creado una sóla opción donde se puede elegir tanto aplicaciones de escritorio como aplicaciones móviles, de hecho permite la creación de todas las plataformas soportadas, a ésta nueva forma de crear aplicaciones se le ha llamado «Multi-Device Aplication»  y otra donde podemos crear aplicaciones Metrópolis.

Ésta característica Multi-Device está soportada en dos de las tres grandes bibliotecas de RAD StudioFireMonkey y la RTL, la VCL no está soportada en ésta característica.

Personalmente me ha gustado mucho la nueva forma de acceder a las aplicaciones FireMonkey con la Multi-Device com lo podemos ver en las siguientes imágenes.

Como podemos ver, contamos con las 4 grandes plataformas Windows, OSX, iOS y Android y dentro de ellas podemos destacar la gran variedad de dispositivos incluyendo Google Glass.

Lo dicho, me gusta mucho ésta nueva versión de RAD Studio que cuenta con muchas mejoras y muchas cosas nuevas que iremos viendo poco a poco.

Nos leemos 🙂


Ésta entrada y cualquier código fuente publicado en ésta bitácora, son libres para su uso y publicación, lo único que te pido, si te parece justo, es mencionar la fuente de donde se obtuvo.

Migrando y probando RAD Studio XE7

Que tal amigos

A mediados de ésta semana  que está por terminar,  descargué e instalé RAD Studio XE7 y al comenzar la migración de una de las aplicaciones que he desarrollado en Delphi XE6 a Delphi XE7, me encontré con un pequeño detalle al ejecutar la app en mi teléfono móvil.

Como preámbulo les comentaré que el programa consume un Servicio Web para obtener el Tipo de Cambio de diversas monedas (Exchange Rate) el cual funcionaba perfectamente en XE6, pero con XE7 me encontré con un error desconocido para mí hasta el momento,

No Selected DOM Vendor

Me puse a investigar porqué  en Delphi XE7 me mostraba dicho error y en Delphi XE6 no, en poco tiempo encontré la solución en la Wiki de Embarcadero.

El tema es porque RAD Studio utiliza de forma predeterminada el proveedor MSXML, y si no se especifíca otro proveedor (OmniXML o AEDOM) nuestras aplicaciones no soportarán otras plataformas mas que Windows y nos mostrará el error que da pie a ésta entrada «No Selected DOM Vendor».

Si requerimos de utilizar otras plataformas el proveedor OmniXML es la mejor opción (por cierto es una de las nuevas características en ésta versión en el rubro de «mejoramiento de la RTL y la VCL», como se puede ver en la lista de nuevas características).

Para resolver el problema de multi plataforma de mis aplicaciones usé la siguiente compilación condicionada:

 
uses
// …
{$IFDEF MSWINDOWS}
    Xml.Win.msxmldom
{$ELSE}
    Xml.omnixmldom
{$ENDIF};

Con ésta compilación condicionada le indicamos que cuando sea una aplicación para la plataforma Windows utilice el proveedor MSXML y si es otra plataforma utilice el proveedor OmniXML.

Con éste cambio, mi aplicación funcionó sin problemas y ya puedo continuar con mi proyecto.

Hasta la próxima

Presentación de RAD Studio XE6 en la Ciudad de México

 

 

Lunes 2 de Junio 8:30 horas, se abren las puertas del elevador frente a la mesa de recepción de la presentación, ya algunos compañeros estaban sentados en su lugar esperando a que diera inicio.

Como siempre, café, agua, jugo y panecillos antes y durante la presentación donde nos mostraron las nuevas características de RAD Studio XE6.

La presentación de parte de Fernando Rizzato y como siempre la apertura de parte de Francisco Miranda, Gerente Comercial de GOPAC.

Muchas caras nuevas, algunas caras conocidas y un producto que siempre nos muestra sus bondades y sus nuevas características.

Muy interesante Tethering, acceso a la nube a través de BaaS y REST, mejoras a la VCL y un A++ Builder con todas las opciones que Delphi ya tiene.

Y bueno, no podían faltar las fotos del recuerdo.

 

 

 

Nos vemos en la siguiente presentación.

 

Primer «vistazo» a RAD Studio XE6

 

RAD_icons2

Ayer 17 de Abril, ya he instalado RAD Studio XE6 y quiero mostrarles mi primer contacto con ésta versión «cero kilometros».

Cabe mencionar que contiene muchos componentes por demás interesantes y requerirá de estudiarlos.

Pues bien, mi primer impresión es que ha tenido cambios a nivel visual, incluyendo desde el instalador del producto hasta el menú del mismo, el cual ya no es el mismo en 3D que estabamos acostumbrados a utilizar, ahora tiene un estilo METROPOLIS, que en lo personal me agrada, no tengo problema por eso, algunos dirían que es igual que Visual Studio, pero bueno, al final el estilo RETRO pareciera que llegó para quedarse.

RADXE6_1

RADXE6

También, incluye muchas funcionalidades y características de actualidad, como lo es la forma Google Glass, aunque poco a poco iremos descubriendo más características, como primer vistazo, no he visto todo por supuesto.

googleGlass

Y bueno, antes de pensar en hacer algo y ver que hace RAD Studio XE6, he tomado uno de sus ejemplos para compilarlo y ejecutarlo en mi teléfono Android. Cabe mencionar que sólo abrí el proyecto SQLite del directorio de ejemplos, el cual permite crear tareas y las almacena en una base de datos SQLite llamada «tasks.s3db», pues bien, ejecuté el proyecto y el resultado fué el siguiente:

tasks

Hasta aquí mi primer contacto con RAD Studio XE6, aunque hay muchas cosas realmente buenas, estoy particularmente interesado en utilizar y aprender Tethering. Ya veremos en las próximas semanas que haremos con todo ésto, son demasiadas cosas por explorar pero poco el tiempo disponible.

Nos leemos.

«Happy Coding»

AppMethod

appMethod

Hola amigos, la intención de ésta entrada es la de mostrar mi primer contacto con ésta aplicación llamada AppMethod.

Para ello he descargado la versión trial que me proporcionará 31 días para desarrollar alguna aplicación, espero poder desarrollar en todas las plataformas disponibles antes de que termine el periodo de evaluación.

Y para no aburrirlos con rollo, les dejo la instalación de AppMethod en imágenes, en entradas posteriores desarrollaré y mostraré alguna aplicación para Android y para todas las plataformas disponibles en ésta herramienta.

appM-1

appM-2

appM-3

appM-4

appM-5

appM-6

appM-7

appM-8

appM-9

Espero que no me tome demasiado pensar en la aplicación que haré, el tiempo apremia. 😀

Nos leemos en la siguiente entrada, hasta entonces felices lineas de código.