Archivo

Archivo para septiembre, 2011

Una semana más; (23/09/2011)

viernes, 23 de septiembre de 2011 3 comentarios
Share Button

Una semana más (a veces quincena, y a veces un poco más…) hago un repaso a lo visto y leído estos últimos días. Como veréis el tema central y más importante sigue siendo RAD Studio/Delphi XE2. Hay mucho revuelo y mucha expectación, hay opiniones “a favor” y también algunas quejas (las más que he leído referentes a la documentación).
Bueno, todo debe escucharse y todo debe tenerse en cuenta.

Comenzamos con un video explicativo de cómo hay que configurar paso a paso un MAC para poder ejecutar aplicaciones realizadas con Delphi XE2 y FireMonkey.

 

 

Antonio Viera ha puesto en marcha su blog (Trabajando con Delphi XE) y ha comenzado con un interesante ejemplo/explicación de cómo realizar una aplicación Cliente/servidor con DataSnap DBX4.  Es un “tutorial” de una aplicación sencilla, pero explicado paso a paso y de forma clara.

Ejemplo: Aplicación de 3 capas multihilo con DBX4 y Delphi XE – multi-threaded application with Delphi XE and DataSnap DBX4

 

pre_P24_cHace unos días comenté algo sobre directivas de compilación;  Ampliando un poco más esa información, aquí os dejo la referencia a la documentación (docwiki de Embarcadero) donde se pueden encontrar algunos de los predefinidos.

Y desde ahí mismo hay un link a los “DEFINES” correspondientes a las diferentes versiones del compilador; Ya había hablado de ellos antes, pero está bien tener el link a la documentación “oficial”.

 

276472_113760532059812_562257430_n Para los que habéis obtenido una copia de RAD Studio XE2 o Delphi XE2, revisad la web de Embarcadero porque tenéis una Oferta Especial y Limitada.  Ahora podéis obtener la certificación Gratis (Delphi Developer Certification).  Revisad también las páginas de los distribuidores locales, porque suelen ofrecer cosas similares. Aquí en España, Danysoft ofrece esta oferta desde hace tiempo, junto con el acceso gratuíto a cursos.

Una de las grandes novedades (si no la que más) y la más vistosa, del nuevo XE2 es FireMonkey. Una de las características de FM son los estilos. A diferencia de los implementados en la VCL y de los que ya he hablado un poco aquí (que son como skins), los de FireMonkey son propios de los componentes. No son un “añadido” por decirlo así que se coloca “por encima del componente”, sino que son una especie de “Hojas de estilo -CSS-”. Lo que decimos realmente es “cómo se debe dibujar el componente”.

Para comenzar a entender los estilos podéis revisar este artículo de Felix John Colibrí sobre Styles en FireMonkey. Suficiente para entrar de lleno en este tema.

Explicado paso a paso y muy completo. recomendable 100% .

firemonkey style designer

Sigo con mis “pruebas” con Delphi XE2, esta semana me he estado “peleando” con los LiveBindinds; Espero poder en breve continuar profundizando más.

Esta semana, Andreano ha realizado un Webminar muy interesante sobre Rad Studio XE2 mostrando muchas de las nuevas características. Los que no hayáis podido asistir, estad pendiente de los videos, porque ha sido muy interesante (cuando el link lo tenga lo publicaré).

Y la semana que viene, el World Tour llega a Barcelona. Danysoft organiza la presentación del nuevo RAD Studio XE2.

Recomendaros los últimos vídeos del Canal de Embarcadero. Ya no sólo para ver más sobre las nuevas características, sino también como método de aprendizaje de estas.

Este es una muestra (link a partir del blog de Salvador –Delphi básico-):

Por último, leo hoy sobre MonkeyGroomer. Esta palabra esconde (por ahora, porque no se sabe mucho más) una herramienta que según se dice: “Permitirá convertir tus formularios realizados con VCL o VGScene a FireMonkey (soportará los ficheros de estilo de VGScene).

Poca información y por ahora sólo un par de enlaces (link1, link2) y unas imágenes. Prometen pronto una versión Alfa. Habrá que estar atentos…

Un saludo y hasta la próxima…

Share Button
Categories: General, Resumen Tags: , ,

Testeando XE2; (LiveBindings) – Parte 1

miércoles, 21 de septiembre de 2011 Sin comentarios
Share Button

imagesEsta es otra de las nuevas características que se anuncian en el nuevo Delphi XE2. A priori con  el nombre me hago una idea de lo que puede ser y se que hay otros lenguajes que poseen características similares (si es lo que yo me pienso).

De todas formas, como no lo tengo claro, me he puesto a buscar qué hay sobre esta palabra…

______________________________________________

“…permite conectar cualquier elemento visual a cualquier tipo de datos utilizando LiveBindings ™”

______________________________________________

“LIBÉRATE DE LAS REJILLAS | VISUALIZA DATOS VIVOS
El nuevo LiveBindings de Delphi te permite conectar cualquier fuente de datos a cualquier interfaz de usuario o elemento gráfico VCL o FireMonkey.
LiveBindings te da la potencia y libertad creativa para presentar datos a usuarios en las formas más intuitivas e interactivas.
LiveBindings también incluye expresiones, dándote la increíble potencia y flexibilidad para construir “dinámicamente” enlaces a datos calculados y actualizados.”

______________________________________________

“¡Nuevo! Conecta cualquier elemento visual a cualquier tipo de dato con LiveBindings”

______________________________________________

Bueno, no se si con eso os he aclarado algo más. Al menos una idea sí parece que nos da de los que pueden ser.

Los LiveBindings permiten completar y ampliar las posibilidades de visualizar datos que nos provee la VCL (y sobre todo los componentes de Base de Datos). Hace unos años, arrastrar un componente DBEdit sobre un formulario, asignarle un DataSource y desde ahí “engancharlo” a un campo de una tabla/consulta era lo más. Ha pasado el tiempo y las tecnologías van cambiando (y también las necesidades).

No es que este modelo ya no sirva, pero sí que en algunas ocasiones queda un poco “corto” o un poco “cuadriculado” (pensemos en desarrollos por capas). La solución en estos casos pasaba por utilizar código para salvar esas limitaciones. Ahora esa parte puede quedar mucho más simplificada.

Sirve además para “completar” todo lo que nos ofrece la librería FireMonkey (de la que ya he hablado a modo de introducción antes), ya que los LiveBindings están tanto en la VCL como en FireMonkey.

Podemos dividir los LiveBindings (LB) en tres varios tipos, dependiendo de los tipos de elementos que vayan a relacionar.

TIPOS DE LIVEBINDINGS

TBindScopeDB

Nos permite “conectar” componentes con DataSets; Utilizando el Inspector de objetos o el asistente, podemos definir como “proveedor de datos” los elementos de un Dataset y como “destino” cualquier componente.

Un ejemplo pasa a paso de utilización de TBindScopeDB podría ser el de un formulario con componentes DB (pero sin ellos –vamos a utilizar los estándar-).

Imagen869

Para ellos crearemos una nueva aplicación FireMonkey y colocaremos los componentes normales para realizar una conexión a Base de Datos (en mi caso he utilizado ADO). Para mostrar los Datos utilizaremos un TStringGrid.

Para mostrar los datos utilizaremos un TBindScopeDB, aunque no hace falta arrastrar el componente desde la paleta (aunque se puede hacer) porque podemos hacerlo utilizando las opciones del menú utilizando el asistente.

 Imagen870Si seleccionamos en Grid, tanto en el menú contextual, como en la parte inferior del “Object Instector” aparece la opción “Link to DB DataSource”. El propio wizard ya nos muestra las fuentes de datos disponibles para poder seleccionar la que queramos.

Imagen871

Una vez  hecho esto, veremos que el asistente ha hecho todo trabajo por nosotros.

Imagen872

Por un lado ha creado 2 componentes nuevos:

  • BindingScopeDB1: El comentado que nos permite “linkar” una fuente de datos con componentes de edición estándar (en nuestro caso).
  • BindingsList1: Es el componente que almacena toda la lista de “Bindings” que vamos a ir creando para este formulario.  En este momento sólo posee uno, pero añadiremos más (más adelante los veremos en detalle).

Vamos ahora a utilizar componentes de edición estándar para mostrar los datos que aparecen en el grid; En este caso 2 TLabel y dos TEdit (TEdit y TCalendar) para los campos de código de empleado y fecha. Los labels los utilizaremos para visualizar el título de los campos (propiedad DisplayLabel –no sólo los podemos utilizar con los datos, sino con cualquier otra propiedad-) de cada campo.

Imagen873

Imagen875Para el Label, lo que necesitamos hacer es “linkar” la propiedad Text del Label, con la propiedad DisplayLabel del campo EmpNo de la Base de Datos (cuya propiedad DisplayLabel tiene el valor “Código”, como se puede ver en la imagen del Grid).

Para esto utilizaremos un TBindExpression.

Desde el propio “Object Inspector” podemos configurar cómo queremos que funcione. Por un lado El TLabel y su propiedad Text y por otro lado el TField EmpNo y su propiedad DisplayLabel, tal y como se ve en la imagen siguiente.

Una vez configuradas las opciones, ya vemos que automáticamente el cambio se ve reflejado en el Label. Si modificamos la propiedad del TField (por ejemplo para mostrarla en otro idioma), automáticamente se modificará el texto del Label.

Imagen874

Para el campo de Edición podemos seguir los mismos pasos que hemos realizado para el Grid, seleccionando el campo que queremos mostrar; Y de la misma forma para el segundo Label y para el TCalendarEdit que mostrará la fecha.

Una vez concluido esto, podemos revisar qué contiene nuestro componente BindingsList1.

Imagen876

Como era de esperar, contiene los 5 “Links” que hemos realizado en nuestro formulario. Podemos ver el nombre del componente y a la derecha una pequeña descripción de cada unos de ellos; Si accedemos (para ver más detalles) por ejemplo, al “binding” del componente de Fecha, veremos la siguiente pantalla (corresponde a lo que hemos configurado en el Inspector de objetos).

Imagen877

Nos dice que el control CalendarEdit1, en su propiedad Text, recibe notificaciones (assign to control -operation-) desde BindScopeDB1,HireDate en su propiedad DisplayText.

El resultado es bastante simple y en este caso no os puedo poner código de ejemplo, Al menos aquí pegado, porque todo se hace sin teclear nada (eso es bueno ¿no?  ;-))

Todo el proyecto posee las siguientes líneas:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
begin
  // cerrar
  Self.Close;
end;
 
procedure TForm1.Edit3Click(Sender: TObject);
begin
  // Abrir una web
  ShellExecute(Handle, 'open', PChar(Edit3.Text), nil, nil, 0);
end;
 
procedure TForm1.Image1Click(Sender: TObject);
begin
  // Animación del titulo
  Layer3D1.AnimateFloat('RotationAngle.Y', 360, 6);
end;

Os animo a que reviséis el proyecto y hagáis vuestras pruebas. Al principio es todo nuevo y cuesta un poco, pero a medida que uno se acostumbra el procedimiento se vuelve bastante ágil.

Os dejo los fuentes del proyecto y el ejecutable.

<DESCARGAR FUENTES>

<DESCARGAR BINARIO>

Un Saludo.

Share Button

Testeando XE2… (soporte nativo para ficheros ZIP)

miércoles, 14 de septiembre de 2011 16 comentarios
Share Button

ZIPFile   Otra de las nuevas funcionalidades que trae la versión de XE2 es el soporte para ficheros ZIP. No es que sea especialmente transcendental, pero en mi caso la he utilizado bastante en mis desarrollos y hasta ahora lo había tenido que hacer mediante componentes externos (he  probado varios paquetes).

   Para ello se ha añadido a la unit System.ZIP, todo lo necesario para el trabajo con este tipo de ficheros.

   En sistema de trabajo es bastante sencillo. Para trabajar con un fichero de este tipo tenemos que crear un objeto de la clase TZIPFile y abrirlo (utilizando la función Open). Tenemos diferentes modos de apertura dependiendo de las operaciones a realizar con el fichero (read,write o readwrite).

0
1
2
// Abrir un fichero
procedure Open(ZipFileName: string; OpenMode: TZipMode); overload;
procedure Open(ZipFileStream: TStream; OpenMode: TZipMode); overload;

Leer más…

Share Button
Categories: Delphi, Ejemplos, XE2 Tags: , , ,

Testeando XE2… (Estilos)

martes, 13 de septiembre de 2011 13 comentarios
Share Button

Otra de las cosas de las que ya he hablado y que llaman la atención en esta nueva versión de Delphi, son los estilos. Es una primera implementación y es mejorable en muchos aspectos, pero es una paso más y un avance más para poder personalizar nuestras aplicaciones.

Hay que decir que el funcionamiento general es muy sencillo.

estilos1

Estaría bien, por ejemplo, mejorar el generador de estilos para que se pudieran importar estilos desde otros archivos similares. En mi caso el generador se ha mostrado “poco estable” cuando he intentado hacer algo más complejo (cambio de imágenes) que intentar modificar los colores del estilo cargado.

Por internet podéis descargar varios videos sobre el uso del “VCL Style Designer”, que así es como se llama la herramienta para crear y modificar los estilos. Aunque es bastante sencilla e intuitiva. Una vez cargado el estilo, podemos modificar los diferentes elementos. Se puede exportar la imagen del estilo completo, modificarla desde un editor externo y luego volverla a cargar, para poder así asignar elementos de esa nueva imagen a los diferentes componentes. Se pueden cargar varias imágenes y combinar elementos de varias de ellas; Pero como he dicho en estas operaciones se ha mostrado “inestable”

Los componentes que derivan de los estándar cogen de forma correcta los estilos.  Lo que no he podido probar (y no parece que exista ahora solución -digo esto sin habérmelo mirado mucho-) es qué posibilidades hay para componentes “externos” que no deriven de uno estándar.

Una creado o modificado un estilo podemos cambiar los campos que identifican al creador, desde la misma herramienta de creación (autor, versión, página web y correo electrónico). Mientras que la previsualización desde el “Style Designer” funciona bastante bien (salvo cuando hay algun error que no muestra nada -tampoco el error-), desde el IDE de Delphi la previsualización es defectuosa (podrían haber utilizado el mismo método que desde el Designer) o “floja” por decirlo así.

En resumen, aunque el sistema tiene algunos detalles todavía faltos de pulir, en general me parece un acierto el poder dotar de esta posibilidad a las aplicaciones que se realicen. El sistema es muy sencillo de utilizar y aunque tiene algunas limitaciones, funciona bastante bien.

Actualmente al cargar instalar Delphi XE2 contamos contamos con 5 estilos que podemos utilizar.

Desde la web de Rodrigo podeís descargar algunos que él ya ha creado y es de esperar que los miembros de la comunidad vayan “colgando” los suyos propios a medida que los vayan creando (para eso supongo que se ha distribuido). Desde ahí mismo podéis consultar la explicación detallada de cómo crear nuevos estilos a partir de los existentes.

El código para cargar el estilo es bastante simple a partir de su nombre:

0
1
2
3
4
5
6
7
8
9
10
Var
  Estilo:TStyleManager;
  i:integer;
begin
  Estilo := TStyleManager.Create;
  try
    i := Random(6);
    Estilo.SetStyle(lEstilos[i]);
  finally
    Estilo.Free;
  end;</p>

En mi caso cargo los estilos de forma aleatoria a partir de un array donde los tengo definidos.

0
1
2
3
4
5
6
// Ini estilos</p>
lEstilos[0] := 'Windows';
lEstilos[1] := 'Aqua Graphite';
lEstilos[2] := 'Aqua Light Slate';
lEstilos[3] := 'Emerald Light Slate';
lEstilos[4] := 'Golden Graphite';
lEstilos[5] := 'Ruby Graphite';</p>

Hasta aquí esta primera visión. En general me ha parecido positivo. Algunos aspectos por pulir, pero creo que es un detalle más, que hace subir puntos a esta versión.

Un saludo.

Share Button
Categories: Ejemplos, XE2 Tags: , , ,

Testeando XE2… (FireMonkey)

martes, 13 de septiembre de 2011 11 comentarios
Share Button

Pues ya tengo Delphi XE2 en marcha. Que ya lo tengo instalado ¡Vamos!

No se a vosotros, pero a mi me pasa (y no sólo con esta versión) que una vez que la tengo instalada, lo primero que se me ocurre es probarla. Probar las nuevas características y ver qué tal funcionan.

¡¡Eso es lo que hace todo el mundo!! Diréis.

Bueno, sí y no. Me refiero a “probarlas en frío”. Sin saber nada más. Sin leer nada más.
Se trata de abrir un proyecto en blanco y empezar a probar cosas. Cosas totalmente nuevas. Cosas que no existían hasta ahora. Cosas de las que he oído hablar, pero no he leído nada.

Eso me da una idea de cómo son de fáciles a la hora de asimilar. Difíciles, complicadas, rebuscadas,… Busco documentación y veo cómo se llega a ella, si la hay, cómo es de clara,…

Todo el mundo habla estos días de FireMonkey.  ;-D    ¡¡Pues allá que voy yo!!

He ido al menú de fichero y he creado una nueva aplicación de este tipo (Fire Monkey HD Application).

A priori todo parece normal; el formulario se ve algo diferente, pero todo lo demás tiene “la misma pinta”.

Pongo algunos componentes, unos botones, un checkbox, una statusBar y una imagen. Mi primera sorpresa viene cuando voy a buscar la propiedad Caption del botón y no está.   8-|

¡No puede ser! Vuelvo a buscar y efectívamente no está.

En su lugar veo la propiedad Text. Pruebo y efectívamente pertenece al caption del TButton.

No parece que tenga mayor importancia…

Pongo un checkbox y al ir a buscar la propiedad Checked…  ¿??¿?¿   ¡¡No está!!    8-||

Vuelvo a revisar las propiedades y…  encuentro una propiedad IsChecked que pertenece a lo que normalmente se hace con la propiedad Checked.

Dejando de lado esto (cuestión de la adaptación de los nuevos componentes adquiridos por Embarcadero-me imagino-) el resto de cosas que he probado son bastante intuitivas y algunas bastante impresionantes. Aplicar un efecto (para lo que antes necesitábamos bastante código o componentes especializados) o realizar una rotación de una imagen es algo “trivial” (por su sencillez).

La velocidad es muy buena y la primera impresión muy positiva.

Os dejo este primer ejemplo; Bastante “tonto” por su funcionalidad, pero también por la complejidad que me ha conllevado (bastante poca).

Aquí los fuentes y el ejecutable, aunque sinceramente no creo que tengan mucho interés, desde en punto de vista de la codificación.

NOTA: Sigo buscando cómo asignarle un texto a la StatusBar que he puesto en el formulario…    ;-D

Un saludo.

Share Button

Una semana más… (13/09/2011)

martes, 13 de septiembre de 2011 Sin comentarios
Share Button

Recuperando el tiempo que he estado de vacaciones, escribo esta entrada. Son enlaces y referencias que tengo “apiladas” y que os las presento sin más espera.

Ya hace unos días que se pueden descargar las Trial de las diferentes versiones y paquetes de la última versión lanzada desde Embarcadero;  Desde ahí mismo se pueden consultar las características de las diferentes versiones, FAQ’s, datos relacionados,…

 

En esta entrada del blog de Andreano Lanusse tenéis toda la información y los links.

Puede ser que te guste más o menos (como las lentejas o la coliflor), que te enganche más o menos, pero como mínimo hay que probarlo.  ;-)

Ya hace unos días también que está en marcha el Grupo Delphi Solidario en Facebook; Una iniciativa de Salvador Jover (inquieto, como siempre).  Si no te has apuntado, pásate por allí y hazlo. Punto de encuentro de desarrolladores y personas relacionadas con Delphi; Enlaces, documentación, White papers y en general todo tipo de información interesante.

Muchas de las presentaciones del RAD Studio XE2 Word Tour (la nueva versión RAD Studio) las está realizando Pawel Glowacky;  En su blog, además de hacer un recorrido por las diferentes presentaciones  que va haciendo, podéis encontrar esta lista de recursos sobre Delphi XE2 y Rad Studio.

Links to resources about Delphi XE2 and RAD Studio XE2

styles Hay muchas características en la nueva versión de Delphi. Entre ellas, una de las más “visuales” son los estilos. Si quieres empezar con ellos y saber cómo funcionan un buen punto de partida puede ser esta entrada del Blog de Rodrigo Ruz:

Exploring Delphi XE2 – VCL Styles Part I

 

rxlogoHe leído también que ya se puede descargar la versión “no oficial” de las RxLib con soporte  para XE2. La podéis encontrar en Torry y la añadiré a las diferentes versiones que ya hay disponibles en mi web en el apartado:

Recopilatorio sobre las RxLib

También se puede encontrar ya, la release de las JEDI con soporte para XE2 (torry) o en la página de SourceForge.

 

Para los nostálgicos y los que nos interesan las curiosidades, Zarko Gajic ha hecho una pequeña recopilación de las características de las diferentes versiones de Delphi, desde sus inicios (página 1 y página 2).

Algo de historia nunca va mal…  ;-D

Se dice que esta versión de Delphi (y de RAD Studio) es una de las que más cambios trae, de las que más novedades aporta. A tenor de esta lista no parece que sea una exageración.

Recopilación de cambios para la versión XE2.

Un saludo.

Share Button
Categories: Delphi, General, Resumen Tags: , ,

Actualización de la librería GLib (versión 1.3)

viernes, 9 de septiembre de 2011 5 comentarios
Share Button

He actualizado la librería de componentes Glib a la versión 1.3

Se han corregido algunos pequeños errores y se han implementado algunas sugerencias de usuarios que los están utilizando. En el fichero leeme.txt que se adjunta con el paquete hay descripción detallada de los cambios, así como en el código de los componentes, donde están comentados igualmente los que afecta a cada uno.

He compilado el paquete en Delphi XE, sin mayores problemas (como era de esperar   ;-D ) y he dejado el fichero del package, junto con el resto.

Podéis descargar este paquete de componentes y algún otro desde la sección de componentes de la página.

Desde la misma página también podéis descargar los componentes de forma individual.

Como siempre, cualquier sugerencia, comentario, corrección,…  será bienvenida.

 

Share Button
Categories: Componentes, Delphi, GLib Tags: , ,

De “vuelta al cole”…

jueves, 8 de septiembre de 2011 Sin comentarios
Share Button

Bueno, pues ya estamos de vuelta. Como todo lo bueno se acaba, las vacaciones no iban a ser menos…   ;-)

 

Acabo de aterrizar y todavía no me he puesto “al día”, aunque poco a poco, a medida que voy revisando correos, blogs, páginas, foros,… mientras “aterrizo” y me desperezo, hay un tema que “sobresale” sobre los demás. Sin duda, la nueva versión de Delphi por parte de Embarcadero acapara la mayoría de las líneas que voy ojeando (que no leyendo).

Os remito a la entrada de Septiembre de Salvador en su Blog (Delphi básico), donde hay una buena recopilación de enlaces y vídeos.

Ya tengo marcada en el calendario también, la próxima presentación de Danysoft sobre la nueva versión. Siempre interesantes (por muchos aspectos, no sólo los técnicos, que ya he comentado en otras ocasiones).  Para el 27 en Barcelona y para el 29 en Madrid. Para los que penséis asistir a la de Barcelona allí nos veremos.  ;-)

Tengo varias cosas “a medias”, así que espero en los próximos días ir cerrando temas y publicando las “actualizaciones” en el blog.

Un saludo.

Share Button
Categories: Offtopic, Otros, Resumen Tags: ,