Archivo

Archivo para la categoría ‘Delphi’

FMX Linux – Primeros proyectos

lunes, 15 de julio de 2019 4 comentarios
Share Button

Hace poco publiqué una primera entrada introductoria sobre FMX Linux. En ella explicaba los primeros pasos para su instalación y configuración. En mi caso lo hice utilizando un sistema Ubuntu 18.04 desktop.

FMX Linux – Configuración

Captura_2019-07-10 13_37_51

Para las pruebas estoy utilizando una máquina virtual preconfigurada sobre VirtualBox. Es una buena solución, además de práctica y rápida de comenzar con un sistema ya configurado y listo para funcionar. De esta forma me puedo centrar en lo que realmente importa para estas entradas.

Captura_2019-07-10 10_46_56Para esto he utilizado la web descargarmaquinasvirtuales.com que permite descargar (como su nombre indica) máquinas de diferentes sistemas ya configuradas (tanto para VirtualBox como para VMWare), de forma que podemos tenerlas en marcha y funcionando en unos minutos.

Una vez instalado y funcionando, la idea es ir ejecutando diferentes proyectos realizados en Delphi para ver cómo se desempeñan en Linux. Son proyectos que desde que apareció Firemonkey he ido desarrollando, algunos para entradas del blog, otros de ejemplo y otros como parte de aplicaciones más grandes, un poco de todo.

La primera prueba ya la comenté en la entrada anterior, y se trata del programa “Hola Mundo!”. En este caso funciona sin problemas (como era de esperar). También comenté que con este programa realicé un Debug paso a paso básico.

Forms y animaciones

La siguiente prueba, también bastante sencilla ha sido probar con varios formularios. Abrir, cerrar y liberarlos sin problemas. Además en el primero de ellos he añadido al color de fondo una animación.

Podéis ver que el color de fondo utiliza un gradiente y una animación en loop.

El botón de cerrar también tiene un efecto de blur aplicado.

Leer más…

FMX Linux – Configuración

miércoles, 10 de julio de 2019 5 comentarios
Share Button

Captura_2019-07-08 13_10_51Seguro que los que estáis un poco al tanto de las noticias de Delphi, el titular de este artículo no os sorprenderá. Se ha publicado en los foros y grupos relacionados con Delphi. Ya tenemos una herramienta que nos permite añadir a la lista de plataformas de desarrollo para Delphi, algunas versiones de Linux (FMX Linux). Está disponible en la versión Architect y Enterprise de Delphi, y para el resto vía GetIt! se puede descargar en modo demo.

El paquete propone generar aplicaciones en FireMonkey con Delphi y utilizando FMX Linux, estas estarán disponibles en Linux (utilizando para ello en compilador para Linux de Embarcadero).

No tengo grandes conocimientos de Linux/Unix, así que me he propuesto para esta entrada intentar poner en marcha el paquete y conseguir generar un ejecutable en Linux con la documentación de la wiki de Embarcadero a ver si soy capaz. De esta forma evaluar también la dificultad de hacerlo para alguien con pocos conocimientos como yo.

Primer Paso: Instalación vía GetIt!

Es la forma más sencilla de hacerlo, ya que el trabajo para nosotros es nulo. Seleccionamos el paquete en GetIt y pulsamos Install. El asistente se encargará una vez aceptada la licencia, de instalarlo, registrarlo y reiniciar el IDE para completar los últimos pasos.

Leer más…

Categories: Delphi, FMXLinux, Linux Tags: ,

Eventos de Base de Datos con SQL Server y FireDAC (Query Notifications)

jueves, 4 de julio de 2019 17 comentarios
Share Button

QueryNotificationsLa mayoría de SGBD’s disponen de un sistema para poder utilizar a lo que habitualmente llamamos eventos o notificaciones, lo que ya no es tan habitual, es que los componentes de acceso implementen esta funcionalidad.

En este artículo me voy a centrar en el sistema que nos ofrece SQL Server (las “Query Notifications”) + FireDAC (TFDEventAlerter).

¿QUE SON LAS “QUERY NOTIFICATIONS”?

Resumiendo y simplificando el concepto, podemos decir que una aplicación cliente recibe una notificación desde el Gestor de Base de Datos, cuando el contenido de una consulta que definimos, cambia. En la práctica funcionaría de la siguiente manera.

Las “query notifications” nos permiten definir la siguiente consulta:

SELECT NOMBRE, APELLIDOS FROM CLIENTES

Y recibir una notificación cuando los datos involucrados en ese consulta (NOMBRE o APELLIDOS del cliente) cambian.

Con esta configuración recibiré una notificación siempre que se AÑADA o BORRE un registro de la tabla CLIENTES y también cuando se modifiquen los campos NOMBRE y APELLIDOS de esta tabla (no así el resto de campos de la tabla).

NOTIFICACIONES EN SQL SERVER

Las notificaciones en SQL Server se introducen en a partir de la versión 2005 (9.x). Y existen varias formas de implementar las notificaciones:

  • SQLNotificationRequest: Está programado a un nivel más bajo y es en cierta forma menos automático, ya que el usuario debe implementar parte de la estructura necesaria para hacerlas funcionar.
  • SQLDependency: Su implementación es a nivel más alto y el sistema es más automatizado. Se inicia un proceso que procesa las notificaciones que se publican en una cola.
  • SQLCacheDependency: Que se utiliza para aplicaciones Web diseñadas mediante ASP.NET 2.0 o posterior.

En nuestro caso nos vamos a centrar en SqlDependency que es el método que utiliza el componente TFDEventAlerter de las FireDAC.

Leer más…

Librería de componentes GLibWMI (actualización)

miércoles, 3 de abril de 2019 2 comentarios
Share Button

Estos días he dedicado un poco de tiempo a revisar esta librería de componentes GLibWMI para trabajar con WMI que ya hace unos años diseñé. Ya he comentado otras veces que por el tipo de código que contiene (en su día la diseñé con Delphi 6) debe compilar sin mayores problemas en versiones posteriores, salvo algunos Warnings (por conversión de tipos de datos) y algún Hint, que no afectan al funcionamiento de los componentes.

He compilado el paquete de componentes con la versión 10.2 Tokyo y he icluído algunas directivas de compilación.

Captura_2019-04-03 11_48_36   Captura_2019-04-03 11_50_24

La librería se ha actualizado a la versión 2.2b y he recompilado los ejemplos y demos que la acompañan.

He mantenido las descargas anteriores por si alguien necesita descargarlas.

Aquí tenéis el acceso a la sección donde se detallan los cambios.

Captura_2019-04-03 12_01_14

CodeRage en Español 2019 (21 y 22 de Febrero)

martes, 12 de febrero de 2019 2 comentarios
Share Button

Como cada año por estas fechas, ya está todo preparado para un nuevo CodeRage en Español.

Dos jornadas con conferencias online para desarrolladores sobre Delphi y C++Builder. Novedades, planes de futuro, funcionalidades recientes, y características interesantes para la comunidad de desarrolladores.

(Actualización 06/03/2019)
Si no pudiste asistir a los Webminar, puedes acceder a la grabación de todas las conferencias en el canal de YouTube de Embarcadero Latinoamérica.

Aquí tienes los videos de todas las conferencias

Banner_facebook_CodeRage2019ES

Personalmente creo que es una gran oportunidad para ver algunos temas de los que habitualmente no se habla en los foros, blogs,…

Aquí tenéis un acceso al link a la página de registro.

A continuación os adjunto un listado de las presentaciones, con hora española (en la pñágina de registro tenéis opción de cambiar la gfranja horaria, para obtenerlas en cualquier otra)..

21 de Febrero:

  • 09:00 – Arquitectura multi-tenant con Spring Boot y Delphi CE (Daniel A. S. Verduzco)
  • 09:50 – Creando aplicaciones Web con Delphi y Unigui (Emilio Pérez)
  • 10:40 – FIREDAC: Recursos que no conoce (Jose Castillo Reyes)
  • 11:30 – RADServer, el centro de todo (Jhonny A. S. Gutierrez)
  • 12:20 – Cómo utilizar módulos de datos para simplificar el desarrollo de aplicaciones multi-plataforma (Miguel A. M. Rendón)

22 de Febrero:

  • 09:00 – El Poder de C++Builder 10.3 Rio (Luis Felipe González)
  • 09:50 – Migración de proyectos C++ Builder a Unicode (Luis Felipe González)
  • 10:40 – Caso de Estudio: Aplicación Móvil Mascotas (Edgar Ramírez Rosas)
  • 11:30 – Aprovechando todo en 10.3 Architect Edition (Fernando Rizzato)
  • 12:20 – Un vistazo introductorio a DevOps (Alejandro Ruiz)
  • 13:10 – Crear una aplicación con ExtJS Modern (Joshua Hernandez)
Categories: Delphi Tags:

(Lo que viene…) Variables Inline

viernes, 2 de noviembre de 2018 7 comentarios
Share Button

Se van descubriendo algunas de las características que tendrá la próxima versión de RAD Studio; Sobre una de ellas voy a hablar hoy y a medida que vayan saliendo comentaré algunas más a medida que las pueda ir probando en la beta. En la versión 10.3 de Delphi se introduce la característica de poder definir variables y constantes «inline».

INTRODUCCIÓN

Utilizando la definición Inline de variables y constantes podemos definir una variable, asignarle un tipo e inicializarla, todo ello en una misma línea y además en el punto donde la necesitemos. Ahora podemos utilizar un código como este que en versiones anteriores nos hubiera dado errores en compilación.

begin
  var str               := 'Hola mundo!';
  var i:integer         := 10;
  var numVersion:double := 10.3;
  var dFecha:TDateTime  := Now;
  var b:boolean         := True;
 
  ShowMessage ('Variable string:    ' + str + sLineBreak +
               'Variable integer:   ' + IntToStr(i) + sLineBreak +
               'Variable double:    ' + FloatToStr(numVersion) + sLineBreak +
               'Variable Date:      ' + DateToStr(dFecha) + sLineBreak +
               'Variable boolean:   ' + BoolToStr(b, True) + sLineBreak
               );

También podemos hacer algo similar con las constantes. De forma que podemos escribir un código como este:

procedure TForm2.Button3Click(Sender: TObject);
begin
  const iVersion:integer = 10;
  const sMensaje:string = 'Hola mundo!';
   ShowMessage(sMensaje + sLineBreak + 'Versión: ' + IntToStr(iVersion));
end;

Leer más…

Categories: beta, Delphi Tags:

Delphi Community Edition

jueves, 19 de julio de 2018 2 comentarios
Share Button

La comunidad Delphi llevaba tiempo demandando esta versión de Delphi y finalmente Embarcadero se ha decidido a dar ese paso. Hace tiempo que disfrutábamos de la versión Starter, pero con la “Delphi and C++Builder Community Edition” se da un paso más.

Se podrá disfrutar de una versión completa, con desarrollo multiplataforma (Windows, Android, iOS y macOS), acceso a Bases de Datos, IoT y el resto de características necesarias para desarrollar con una versión completa.

Delphi_10.2.3_CE_Splash

Según la web de embarcadero, esta versión está enfocada a desarrolladores independientes, startups, estudiantes y organizaciones sin fines de lucro con ingresos anuales menores a 5000$ o equipos con hasta 5 desarrolladores.  Es decir, que podemos instalar y utilizar esta versión para aplicaciones de uso propio o incluso para venderlas si nuestros ingresos por ellas no superan esos 5000$.

Personalmente creo que es una gran noticia; La única pega tal vez sea que ha llegado un poco tarde, pero eso no quita que sea algo bueno.  Disponemos de una versión Profesional completa de libre descarga y uso para todos aquellos que quieran trabajar con ella y conocerla.

Aquí tenéis la comparativa entre las diferentes versiones (incluida la Community) que distribuye ahora Embarcadero.

2018-07-19 08_15_32-000184

Si queréis conocer todos los detalles de esta versión, aquí tenéis en enlace a la página Community Edition FAQs, donde tenéis todos los detalles comerciales, de licencia, de uso,… referentes a esta versión.

Página de presentación y descarga.

Aquí os dejo también a la página en la docWiki de Embarcadero. Podéis encontrar aquí detalles más técnicos sobre la descarga, instalación, activación,…

Y algunos enlaces a Blogs y Webs de compañeros de la comunidad:

NOTA: Añado también algunos enlaces a páginas de Embarcadero con datos de la versión.

Categories: CE, Delphi, Embarcadero Tags: ,

Entornos de ejecución de test con DUnitX (Bonus track)

martes, 26 de junio de 2018 Sin comentarios
Share Button

Con la anterior entrada del blog completamos la serie sobre test unitarios y los frameworks a utilizar con Delphi, con una visión general sobre DUnitX. A continuación tenéis los links a las entradas de la serie.

Esta última no estaba prevista inicialmente, pero la última ya era bastante extensa y no quise mezclar con el tema de DUnitX este “Bonus track”. Digamos que esta es como un apéndice a la serie.

DUnitX permite ejecutar los test que diseñamos utilizando diferentes salidas. Digamos que el programa de ejecución de test puede estar diseñado en “modo consola”, utilizando un ejecutable VCL o generando un programa FMX. No hablamos de los test en sí, sino del programa que nos muestra la salida y los resultados de la ejecución.

A continuación vamos a repasar casda uno de ellos.

Leer más…

Categories: Delphi, TDD, Unit test Tags: , ,

Delphi y C++Builder Iberian Tour 2018

martes, 5 de junio de 2018 Sin comentarios
Share Button

Como viene siendo habitual los últimos años, Danysoft distribuidor oficial de Embarcadero Delphi en España y Portugal organiza el «Iberian Tour».

Presentaciones gratuitas sobre las novedades de las últimas versiones de Delphi y C++Builder.

Este año en Barcelona, Madrid y Valencia (7, 8 y 12 de Junio respectivamente).

El link para ver los contenidos y registrarse es el siguiente

Un saludo.

Test Unitarios; Framework DUnitX (Entrega 4)

martes, 15 de mayo de 2018 Sin comentarios
Share Button

Completamos con esta entrada la serie sobre test unitarios, centrándonos en el Framework DUnitX, que es el que actualmente embarcadero recomienda y se incluye en las últimas versiones de Delphi.

INTRODUCCION

Como ya he comentado en las entradas anteriores, DUnitX es una evolución de DUnit (y que además recoge ideas de otros paquetes similares como NUnit). Si no lo tenéis en la versión actual de Delphi con la que estáis trabajando, podéis descargarlo desde el repositorio de Github, y deberíais poder instalarlo sin problemas. DUnitX soporta versiones de Delphi 2010 y posteriores.

A continuación os adjunto una tabla con las diferencias más significativas en cuanto a características que DUnitX nos aporta frente a DUnit. (click sobre ella para verla ampliada).

Leer más…

Categories: Delphi, TDD, Test Tags: , , ,