Archivo

Archivo para la categoría ‘Delphi’

Visualizar rutas con OpenStreetMap

martes, 19 de junio de 2012 5 comentarios
Share Button

47051ef57b97x300.jpgAnteriormente en el blog he escrito entradas sobre cómo visualizar rutas o tracks en mapas  de Google , en diferentes formatos. Al final la idea es la misma en todos los ejemplos; Pintar una sucesión de puntos correspondientes a latitud y longitud sobre un mapa. Nada más. Hemos visto cómo hacerlo con los ficheros KML que utiliza Google o los ficheros GPX (GPS eXchange Format), que están considerados como un estándar en este tipo de representación.

No es mi intención seguir el camino que muchas compañías están tomando de “mudarse” de los mapas de Google a OpenStreetMap, desde que Google anunció que iba a cobrar por utilizar los suyos, sino más bien ampliar las posibilidades de los ejemplos que ya habíamos visto para poder utilizar estos mapas también.

Para quien no la conozca, OpenStreeMap, se trata de una plataforma de mapas a nivel mundial libre. Donde cualquiera puede añadir información (en mi caso, por ejemplo, he añadido rutas en bici).  Si queréis saber algo más sobre este proyecto podéis leer esta lista de “las 10 cosas que deberías saber sobre OpenStreetMap”.

He utilizado el mismo ejemplo que en su día hice para la visualización de tracks en Google Maps; “El Visor KML”. Como ya he dicho, la idea es la misma, pero utilizando diferente proveedor de mapas.

En el caso de Google Maps, para crear el mapa y la polilínea utilizamos las siguientes clases:

map = new GMap2(document.getElementById("map"));var polyline = new GPolyline…

En el caso de OpenStreetMap utilizamos:

map = new OpenLayers.Map ("map_canvas", options…
…
var linear_ring = new OpenLayers.Geometry.LinearRing(points);
polygonFeature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Polygon([linear_ring]), null, style);

Siguiendo con la misma idea su miramos como proveedor Bing Maps (Microsoft) o los mapas de Yahoo, el sistema es fácilmente “portable” a estos. Si buscamos un poco en la API para Bing, vemos que para crear el mapa y la polilínea podemos utilizar:

map = new MM.Map(document.getElementById("myMap"), options…
var polyline = new MM.Polyline([

Y en el caso de Yahoo Maps utilizaríamos:

var map = new YMap(document.getElementById('map'));
polylinePoints = [];
map.addOverlay(new YPolyline(polylinePoints, options…

Modificando el ejemplo antes comentado, he añadido a los mapas de Google Maps, los mapas de OPenStreetMap y los de Bing Maps. Si alguien se anima a completarlo con los de Yahoo Maps (ya he parado aquí) os lo dejo como “ejercicio” y espero que lo compartáis aquí.

Os dejo unas imágenes del resultado.

gmosmbm

Los diferentes mapas se encuentran en un fichero de recursos.

Os adjunto el código fuente del proyecto, algunas rutas de ejemplo para probar y un EXE compilado.

<DESCARGAR FUENTES + EXE>

NOTA: Es posible que debido a los cambios de licencias de Google y del resto de proveedores, no se pueda ejecutar el proyecto de ejemplo correctamente sin algunos cambios respecto a las API, pero el código sigue siendo válido y orientativo para el que tenga que trabajar con estos temas.

Categories: Delphi, GPS, Mapas Tags: , , ,

Seminario Web gratuito: 4 horas con Delphi

viernes, 15 de junio de 2012 Sin comentarios
Share Button

Nuevo seminario web gratuito para finales de Junio por parte de Danysoft, distribuidor oficial de productos de Embarcadero.

El día 22 de Junio de 9:55h.  a  14:00h.

Más información e inscripciones aquí.

Categories: Danysoft, Delphi, Eventos Tags: ,

Una quincena más… (11/04/2012)

miércoles, 11 de abril de 2012 10 comentarios
Share Button

fuga_cerebro-1En esta ocasión han pasado algunos días más desde la última entrada, pero he aquí una  pequeña recopilación de los últimos días…

Imagen1102

Desde el “joven Blog” de Antonio Viera nos llega un pequeño manual/ejemplo/step-by-step de cómo crear una aplicación en tres capas. Una introducción para aquellos que queráis conocer cómo este modelo de diseño/programación y que podáis probar con un proyecto sencillo. Explicado de forma clara y sencilla y muy fácil de seguir.

Interesante video de “Remote Debugger” (PAServer para Windows y MAC). Aquí se puede ver como configurarlo y cómo trabaja con Delphi XE2.

Ya he hablado anteriormente de LiveBindings en el Blog. Hay bastantes artículos al respecto, de cómo utilizarlo con controles para trabajar con Bases de Datos. En este caso, en este grupo Australiano sobre Delphi he encontrado un interesante artículo sobre cómo utilizar los LiveBindings con Objetos. Utilización de eventos de notificación y de creación de expresiones por código. Buen complemento para los muchos artículos que presentan el uso más “visual” de esta tecnología.

Imagen1103Hace unos días se publicó una nueva revisión (más que versión) de las RxLib. Personalmente, ya lo he comentado otras veces, tengo especial predilección por esta librería de componentes y la uso desde hace mucho tiempo. En este caso es la versión RxLib unofficial 2.75  1.08 y según lo que podemos leer en el documento que se adjunta con la versión, llega preparada para la última versión de Delphi (XE2) y con soporte para 64 bits (aunque sin testear completamente).

La podéis descargar desde este link, desde la página de la publicación, desde Torry o desde el recopilatorio que hay en este blog.

images Para los que trabajamos con SQL Server entre otras opciones de servidores de Base de Datos, un par de artículos interesantes sobre este SGBD. El primero como una curiosidad, y también enfocado a la optimización, desde el blog de BlackSlot leo un pequeño artículo sobre cómo obtener las 10 consultas que más se utilizan en SQL; Una vez conocidas, es tarea del Administrador utilizar los métodos disponibles (índices, cachés, tablas temporales,…) para intentar optimizar el funcionamiento del Servidor y por ende el de las aplicaciones que trabajan con él.

Relacionado con SQL Server también, podemos leer en el blog de Eduardo Ortega unos sencillos consejos para la optimización de consultas.

FireMonkeyComo en otras ocasiones en las que hago repaso de novedades y links interesantes, es inevitable hacer referencia a FireMonkey.

En la web de Embarcadero se ha publicado la “Quick Start Guide” de FireMonkey. Un repaso por diferentes apartados que nos ayudan a “poner en marcha” y a empezar a entender de forma sencilla esta tecnología. Es un “añadido” más, pues si todavía no lo habéis hecho, os recomiendo que os adentréis en la DocWiki, ya que actualmente y dada la documentación existente, es un lugar indispensable para encontrar información, documentación, ejemplos,… de las ultimas versiones de Delphi.

Imagen1105

Aparte del ya comentado, desde el blog de David I. podéis acceder a otros recursos muy interesantes:

Además, como complemento os adjunto una serie de links a videos, relacionados con el tema y que podéis encontrar entre otras cosas aquí:

   Saltando de tema, y relacionado con otras entradas publicadas anteriormente en este blog acerca de Geolocalización (Codificación Geográfica – I y Codificación Geográfica – II), en DevMedia se ha publicado una entrada muy interesante sobre utilización de la API de Google Maps para localizar direcciones postales, aunque cambio el link, porque el artículo original (y al cual no se hace referencia) se encuentra en el Blog de Rodrigo. En él se hace uso de la API de Google  v3.

images (1)   Una pregunta que ya he leído varias veces en los foros y en lugares como StackOverflow, está relacionada con la posibilidad de conectar a Azure desde Delphi. Por lo que había leído hasta ahora, la solución pasaba con los componentes AnyDAC; En “The Art of Delphi Programming” leo estos días la posibilidad y el procedimiento para hacerlo utilizando dbExpress.

Para ir acabando, os recomiendo pasar por el blog de Rodrigo, “The Road To Delphi”, para leer uno de sus últimos artículos sobre WMI (sobre este tema en lo que se refiere a Delphi es un lugar obligatorio, junto con la documentación en MSDN). El artículo se titula “How to obtain the source of the WMI data”. Sin comentarios. ;-)

Y por último, un apunte sobre IDE Fix Pack, del cual hace unos días ha salido la última revisión, que corrige algunos bugs de versiones anteriores.

Hasta aquí todo y hasta la próxima.

Un saludo.

Categories: Delphi Tags:

Yo ya tengo el mio…

miércoles, 14 de marzo de 2012 4 comentarios
Share Button

Pues esta misma mañana (la verdad es que ha ido rápido) me ha llegado la última adquisición que he hecho. Y además venía con «regalito»…  ;-)

Como bien dicen, «una imagen vale más que mil palabras»

 

 

 

Podéis consultar todos los detalles desde la web de Danysoft.
Además allí está para descarga el índice del libro para ver con detalle todos los contenidos.

Un saludo a todos.

Categories: Delphi, FireMonkey Tags: , ,

Una quincena más… (24/02/2012)

viernes, 24 de febrero de 2012 Sin comentarios
Share Button

Desde hace unos días ya podemos disfrutar en el Clubdelphi de dos nuevos foros dedicados a FireMonkey y Delphi/web.

El primero va pidiendo paso día a día, y cada vez tenemos más material (y más diverso) de esta nueva tecnología, que si sigue así está llamada a tener un gran futuro.

El segundo engloba varias tecnologías ya existente y las nuevas que van apareciendo para “llenar” un espacio que parece que no está muy delimitado. Se trata de soluciones pasa desarrollar sistemas Web, pero utilizando Delphi. Casi todas en desarrollo actualmente y  algunas ya funcionales y con bastantes posibilidades.

Anuncio de los nuevos foros.

 

devex Estos últimos días leo también el anuncio de que ya está disponible la versión de la suite DevExpress para Delphi XE2 y 64 bits. Versión 11.2 que también está disponible para Builder. Es sin duda una gran noticia (y más para los que las utilizamos a diario). Personalmente pienso que es sin lugar a dudas la mejor librería de componentes diseñada para Delphi.

Espectacular video de una aplicación para visualización de imágenes hecha con FireMonkey. A parte del ya conocido efecto “cooliris”, que muestra las fotos en forma de muro, y que giran para ir rotando, aquí podéis ver cómo generar efecto originales, uno que simula un aparador de portales, como las que hay en los kioskos o un marco de fotos como los que se colocan sobre la mesa y hacen girar las fotos como un clasificador.

imagenes1   imagenes2

Link al video

Fantástico ejemplo con código incluido, publicado por Pawel Glowacki en Embarcadero en día del “cumpleaños de Delphi” en el Webminar, sobre la visualización de moléculas químicas utilizando Delphi y FireMokey.

fmmoleculesviewerver

Otra imagen espectacular de una aplicación utilizando FireMonkey con el “efecto cooliris” cuya imagen hemos visto estos días. Se trata de la conocida Fish Facts, pero con un interface un poco diferente a lo que estamos acostumbrados a ver.

El código está disponible para descarga en esta entrada de EDN (Embarcadero Developer Network), y podéis acceder a un video explicativo en este enlace.

bizflowmac_5318

Desde hace unas semanas, estoy revisando con un poco de detalle diferentes soluciones que integren el desarrollo web con Delphi. Coincide esto con que en los foros del ClubDelphi se ha creado un nuevo subforo destinado a este tipo de soluciones (comentado antes), además de uno para FireMonkey (sin duda una de las tecnologías con más futuro en estos momentos).

En el primer foro (soluciones Delphi/web) se engloban y referencian productos ya conocidos como:

    A día de hoy leo sobre dos nuevos proyectos que podemos englobar en esta categoría y que son la finalidad de esta reseña:

El primero a comentar es dwf, que se define en su web como “A small and simple web application framework for Delphi”. No hay mucha información al respecto todavía y actualmente está en fase beta, pero tienen bastante buena pinta. Es su página podéis ver una descripción más amplia del proyecto.

El segundo llamado KITTO, y que se define como un “Framework for creating data-driven web applications with Delphi”. Utiliza las  librerías extPascal y por tanto los componentes extJS (de los que ya he hablado anteriormente).

    Una imagen del modelo/arquitectura general del framework:

Kitto_architecture

    Y aquí una más detallada de la estructura general de las aplicaciones resultantes:

Kitto_detailed

 

Por último, en los próximos días se celebra en Barcelona y Madrid un encuentro de usuarios Delphi ofrecido y organizado por Danysoft. El 8 de Marzo en Barcelona y el 9 de Marzo en Madrid.

1203evDelphi

Y esto es todo, hasta la próxima.

Categories: Delphi, Eventos, Resumen Tags: ,

Una quincena más… (08/02/2012)

miércoles, 8 de febrero de 2012 2 comentarios
Share Button

Ya hace unos días se anunció que a primeros de Febrero se liberaría la librería principal de Lua4Delphi. Si queréis más información sobre este proyecto, que parece interesante podéis revisar la página web.

En esta entrada del blog monkeystyler leo una entrada interesante titulada “My primer componente FireMonkey: TBitmapSpeedButton”. Creo que es una lectura recomendable para todos aquelos que quieren trabajar con FireMonkey y entender mejor el funcionamiento de los componentes.

 

notepadpp Para los que todavía utilizáis el Notepad de Windows (supongo que pocos a estas alturas) os recomiendo Notepad++.  Es un fantástico editor de texto (que utilizo desde hace mucho tiempo). Tiene infinidad de características, y entre ellas un sistema de plugins bastante elaborado. Esta reseña viene a colación, de una pregunta que he visto estos días en “The Delphi Geek” (recomendable)  sobre “posibles editores de Wiki”.
Una de las respuestas es que en Notepad++ existe un plugin (entre los muchos que hay), que permite realizar esto.  El “wiki editor plugin”, que permite realizar esta tarea y además está desarrollado en Delphi. En la página podéis descargar no sólo el plugin, sino también el código Delphi. Por si alguien se anima…  ;-)

Esta semana ha aparecido una “release” nueva (no-oficial) de las rxLib, de la mano de micrel.cz, con fecha del 2 de Febrero. La podéis descargar de la página, desde este link y también la añado a la sección donde están recopiladas el resto de versiones. Algún componente nuevo y algunos bugs corregidos.

En el blog de  Zarko, leo una entrada interesante y que tiene mucho que ver con preguntas que aparecen de forma recurrente en los foros. Es muy habitual ver y leer preguntas sobre librerías o componentes que posibiliten trabajar con ficheros PDF. ¿Cómo generarlos?, ¿cómo abrirlos? ¿cómo imprimirlos?
La entrada nos presenta la librería Quick PDF Library en su versión LITE.  Podéis ver las cabeceras de los métodos disponibles y algo de código de cómo utilizarla e instalarla.

Por último, leo hoy en los blogs de Embarcadero, que todos los programadores Delphi estamos invitados a celebrar en breve, un cumpleaños. La versión de Delphi 1.0 se liberó el día 14 de Febrero de 1995.

Si queréis más información sobre este “webminar”, podéis encontrarla aquí.

Un saludo y hasta la próxima.

Categories: Delphi, Resumen Tags: ,

Testeando XE2 (aplicación FireMonkey…)

miércoles, 9 de noviembre de 2011 9 comentarios
Share Button

Hace unas semanas comencé a “trastear» con XE2, con FireMonkey, con los liveBindings, estilos y algunas características más…  Estuve posteando aquí las primeras impresiones y los resultados de esas  primeras pruebas.

En esas entradas he realizado un primer acercamiento a estas tecnologías, he dado un repaso y he testeado por encima algunas de sus características. La idea ahora, es ir un poco más allá.

He leído en algunos foros opiniones sobre que FireMonkey está «a medias» o «incompleto». Respeto esas opiniones, pero personalmente no estoy de acuerdo. Creo (y aquí es donde puede estar el error ) que se compara a FireMonkey con la VCL y las características que posee esta. Desde ese punto de vista sí puede parecer que  «le faltan cosas» y eso puede dar una sensación de que es una tecnología inacabada.

Pienso que el objetivo final de FireMokey no es, llegar a conseguir todas las características con las que cuenta la VCL. Es algo totalmente nuevo que avanza en una dirección paralela, algunas cosas tendrá sentido «adoptarlas» y otras no, pero a mi entender eso es «añadir» no «completar».

Hace tiempo publiqué en el blog un pequeño ejemplo de cómo cargar ficheros  GPX  (alternativa generando KML) procedentes de dispositivos GPS y visualizar esos tracks o rutas en una Aplicación  Delphi. Me he decidido por intentar realizar esta pequeña aplicación utilizando FireMonkey.


TActionList, ¿dónde está?

Lo primero que me he encontrado, aunque en realidad ya lo había visto en las primeras pruebas, es que no puedo utilizar un TActionList.  Este componente no está en la paleta donde debería estar o donde uno esperaría encontrarlo. Una cosa que sorprende es que los componentes estandard de FireMonkey sí poseen la propiedad Action para poder asignar un elemento. No es que sea imprescindible, pero es muy cómodo.

Lo siguiente que me planteo es la importación de datos desde un fichero GPX. En su día la hice utilizando el XMLmapper, pues los ficheros GPX son en realidad ficheros XML. Me propongo utilizar el mismo modelo utilizado anteriormente;  Importar el fichero GPX a un TClientDataset para getionarlo después de forma local.

TXMLTransformProvider, ¿dónde está?

Al igual que me ha pasado anteriormente, coloco un TClientDataset y cuando voy a colocar el TXMLTransformProvider no está donde esperaba encontrarlo.

He realizado un par de pruebas y lo más curioso es que creando y configurando el componente «a mano» funciona perfectamente. Con un código como este y configurando los campos apropiados en diseño el componente funciona perfectamente, importa los datos e incluso se pueden configurar LiveBindings para mostrar el resultado en un Grid.

  XMLTransform := TXMLTransformProvider.Create(nil);
  XMLTransform.TransformRead.TransformationFile :=
    'd:\Ficheros GPX\GPX_To_DP.xtr';
  XMLTransform.XMLDataFile :=
    'd:\Ficheros GPX\Ruta3.gpx';
  ClientDataSet1.SetProvider(XMLTransform);
  ClientDataSet1.Active := True;

Una vez activado el componente la importación se realiza sin problemas.

He dejado de lado esta cuestión por ahora; Tal vez más adelante me detenga para probar más cosas, pero para seguir adelante he realizado la importación de datos «manualmente», de forma que una vez conseguidos los datos en el TClientDataSet y puedo continuar a tratarlos.

El siguiente paso es colocar los elementos en el formulario, tal como van a ir distribuidos. Una cosa a la que hay que acostumbrarse es que los componentes de FireMonkey no poseen la propiedad

Anchors, que tan útil nos es utilizando componentes de la VCL. A cambio podemos ver que la propiedad Align posee una cantidad de valores superior que nos permite realizar más cosas. En este caso utilizamos la propiedad Align y la propiedad Padding para ir fijando los controles al formulario tal y como deseamos.

Se trata de conseguir lo mismo, pero por un camino diferente…

Una vez que los componentes básicos ya están colocados necesito plasmar en pantalla una serie de coordenadas. Para ello he escogido el componente TPath. La idea es que permite representar una serie de puntos que forman una línea o camino.
La potencia y la velocidad llaman la atención, pero también la sencillez.

 

Basta con soltar el componente en pantalla y utilizando la propiedad Data, colocar lo siguiente para conseguir una imagen (o path) como el que veis más abajo (se puede hacer en diseño utilizando un pequeño formulario de edición):

M 0,2 L 1,2 L 1,5 L 2,5 L 2,2 L 3,2 L 1.5 0 L 0,2

Si lo pensáis un poco, no son más que coordenadas precedidas por el tipo de «unión» o «elemento» que queremos utilizar entre ellas; la Primera M se refiere a MOVER, las L se refieren a LINEA.

Es así de sencillo y así de potente.

Un código como este, os podéis imaginar lo que dará como resultado:

for I := -360 to 360 do begin
    n := DegToRad(i);
    res := Sin(n);
    //res := Sin(n) * Sin(n);
    //res := Tan(n);
    if (Str = '') then begin
      Str := 'M ' + FloatToStrF(n, ffFixed, 35, 10) +
              ' ' + FloatToStrF(res, ffFixed, 35, 10);
    end
    else begin
      Str := Str + ',' + 'L ' + FloatToStrF(n, ffFixed, 35, 10) +
             ' ' + FloatToStrF(res, ffFixed, 35, 10);
    end;
  end;
  Path1.Data.Data := Str;

Con esto más o menos ya está todo completo. Los componente básicos ya están escogidos.

He utilizado LiveBindings para poder mostrar los datos en de las coordenadas en un TStringGrid; También he aplicado un estilo visual a la aplicación y por último una par de animaciones para dar más vistosidad a la visualización del track.

La conclusión que saco, es que  sí se pueden hacer aplicaciones con FireMonkey, lo que pasa que tal vez en algunos aspectos debamos pensar las cosas con otro enfoque o hacerlas de otra manera. Seguramente está en los planes de Embarcadero (eso espero) ampliar sus funcionalidades y el número de componentes.

Por último comentar que me he quedado con la ganas de poder compilar la aplicación y generarla para iOS, pero por ahora, no dispongo de los medios para hacerlo. Sobre todo me queda la duda de qué hubiera pasado con una aplicación, de un programador como yo con «visión de Windows», al compilarla en MAC.

¿Algun error? ¿Algun problema? ¿Warinigs? ¿Algun elemento que no puedo utilizar?  ¿?¿?¿?

Si alguien se anima a hacerlo, le agradecería que nos comunicara el resultado y me enviara alguna pantallita.   ;-)

Os dejo los enlaces al código fuente y al ejecutable (este último comprimido con UPX) junto con algunos ficheros GPX que podéis usar para las pruebas.

<Descargar el código fuente>

<Descargar binario – EXE>

[wpfilebase tag=file id=1 /]

[wpfilebase tag=file id=2 /]

NOTA: Acabo de corregir un par de errores en el código y añadida la DLL (midas.dll) porque quien no la tenga no podrá ejecutar la demo (gracias Rafa).

Como siempre los comentarios, sugerencias, críticas y demás son bienvenidos.

Un saludo y hasta la próxima.

Categories: Aplicación, Delphi, FireMonkey, XE2 Tags: ,

Entrevista con Pawel Glowacki

lunes, 17 de octubre de 2011 2 comentarios
Share Button

A finales de Septiembre se celebraron las presentaciones de RAD Studio XE2 en Barcelona, Madrid y Lisboa. Como siempre, organizadas por DanySoft (partner oficial en la península) y en este caso con la presencia y colaboración de Pawel Glowacki.

1109ba04g
Foto de Pawel y Daniel Valenzuela de Danysoft, durante las presentaciones.

Si queréis saber más de las presentaciones, podéis ver un resumen de cómo fueron las conferencias (sobre todo la de Barcelona) en las entradas de nuestros blogs, y también podéis encontrar más información y fotos en el grupo de Facebook (Delphi Solidario).

danylogo Desde hace un tiempo, Danysoft, como partner de Embarcadero, está haciendo un esfuerzo importante por fomentar las webs, blogs y foros españoles, de sus herramientas de desarrollo; Un esfuerzo por fomentar ”La Comunidad Hispana”, como nos gusta llamarlo a nosotros, y también un esfuerzo para que encontremos ese apoyo que en ocasiones les hemos reclamado. A raíz de esto, y cuando ya se estaban preparando las presentaciones (en concreto la de Barcelona), tanto a Salvador como a mi, nos brindaron la oportunidad/posibilidad de mantener una breve y amistosa charla con Pawel (como representante de Embarcadero) y con ellos, los chicos de Danysoft en Barcelona, aprovechando el encuentro.

Una oportunidad inmejorable para plantear algunas preguntas e inquietudes y para transmitir algunos “pareceres” como usuarios y como parte de una comunidad, directamente a una persona de Embarcadero.

A través de los blogs y de los foros, algunos de vosotros nos habéis hecho llegar algunas preguntas y temas de interés. Así que intentamos recopilarlos y entre los dos transmitirles algunos de los más significativos.

No quiero alargarme más, sólo comentar que sobre la marcha, minutos antes de que Pawel pudiera atendernos, valoramos la idea de adjuntar a este resumen el audio de la entrevista; pero por diversos motivos ajenos a nosotros, el resultado de la grabación fue tan defectuoso que no quedó en condiciones de ser compartido (se grabó con lo que en ese momento teníamos a mano -un pequeño teléfono que hizo de grabadora-), y las circunstancias especiales del retraso horario (que obligaban a los técnicos de Danysoft a iniciar las labores de desalojo del salón para volver a Madrid) y finalmente por la estructura de la sala, en la que había bastante eco y ruido de fondo – y nuestra falta todavía de experiencia y pericia como “periodistas”, que acabo haciendo el resto…-  ;-D);

Igualmente nos hubiera gustado transcribirla de forma “literal”, pero por la misma razón expuesta,  no nos ha sido posible. Utilizando las partes de audio “aceptables” y las notas que tomamos, hemos intentado plasmar en las respuestas las contestaciones de la forma más fiel posible a lo que Pawel nos comentó. Os pedimos perdón por ello y aprendemos esta lección para próximas oportunidades que puedan surgir.

____________________________________________________________________

Pawel

PREGUNTA: (general)

Actualmente Embarcadero posee muchos “frentes” abiertos con la nueva versión de RAD Studio (muchas tecnologías diferentes están involucradas).

¿Hacia dónde va encaminado el futuro de RAD Studio/ Delphi?

En general, ¿cual cree que es el futuro de estas herramientas de desarrollo (multiplataforma, desarrollo en la nube, interconexión entre aplicaciones heterogéneas, desarrollo web,…)?

En lo que se refiere a Delphi (RAD Studio), FireMonkey es un avance tecnológico muy grande, un enfoque diferente que coloca a RADStudio por delante de otras herramientas similares del mercado a la hora de realizar un desarrollo de aplicaciones con un interface rico, de forma rápida y ágil. Las características que ofrece FireMonkey con compilación nativa en los diferentes sistemas operativos, y la potencia gráfica junto con la facilidad de desarrollo, lo posicionan en un lugar único frente al resto.

En cuanto al futuro, nos ha comentado que apuesta mucho por DataSnap. Es una tecnología que tiene grandes posibilidades y que Embarcadero está mejorando en cada versión.

Conectividad

PREGUNTA: (general)

Esta versión de RAD Studio/Delphi ha generado muchísima expectación (mucha más que cualquier otra de las anteriores). Muchas cosas nuevas se han introducido en las 2 o 3 últimas versiones y muchas se están mejorando. DataSnap, compilación 64b, multipltaforma, DBExpres, mejoras en el IDE,…

¿Porqué cree esta está siendo tan especial? ¿Cual es la clave? ¿Cual es la “tecla que ha pulsado” Embarcadero esta vez para conseguir ese cambio?

La respuesta de Pawel (que además ya se intuía después de haber escuchado la presentación) ha sido muy “visual”. Sin decir palabra lo primero que ha hecho ha sido señalarse con el dedo el logotipo que llevaba su camiseta. Seguidamente ha pronunciado una sola palabra: ¡FIREMONKEY!

PREGUNTA: (FireMonkey) FireMonkeyLogo

¿Cual es el futuro de FireMonkey? ¿Cuales son las ampliaciones más cercanas? ¿Muchos usuarios preguntan si estas librerías son ampliables a otras plataformas? ¿Está esto en la mente (planes de futuro) de Embarcadero?

 A esta pregunta nos contestó que FireMonkey no deja de ser “una primera versión”; Ellos lo saben y los desarrolladores deben ser conscientes de ello. Es un “comienzo”, una versión inicial que va a abrir un nuevo frente en el desarrollo. Tienen en mente ampliarlo a más plataformas y ampliar la biblioteca en sí. Por supuesto mejorar la librería, ampliarla y corregir de errores y bugs.

 

FireMonkey-Medium

PREGUNTA (FireMonkey)

En algunos foros se ha leído que FireMonkey va a suponer la “muerte” y el abandono de la VCL; A partir de estos comentarios surgió la siguiente pregunta:

¿La introducción de Firemonkey puede implicar que se abandone finalmente la VCL?

 En esta caso nos comentó que desde Embarcadero no tienen ninguna intención de abandonar el desarrollo y las mejoras de la VCL. Su idea es seguir desarrollando y manteniendo ambos desarrollos (tanto la VCL como FMX).


documentosPREGUNTA (Documentación)

Una de las “quejas” y/o coment

arios que más se repiten entre los usuarios es la falta de documentación sobre las nuevas características que incluye esta versión; Algunas tan importantes como FireMonkey, DataSnap o LiveBindings,…. De algunas de ellas, cuando accedes a la ayuda del IDE (F1) apenas encuentras una pequeña descripción y el esqueleto de las clases.

¿Qué opina sobre esto? ¿Y qué solución hay a esto? ¿Está Embarcadero trabajando para mejorar esto?

Para un usuario avanzado puede ser más o menos fácil navegar por Internet y encontrar ejemplos, videos, artículos,… (Inglés),  ¿Qué pasa con los usuarios noveles? ¿O no tan avanzados?

Sobre este tema nos comentó que son conscientes de que es bastante mejorable (es otra pregunta posterior volvió a mencionarlo).

Nos comentó que en tiempos de Borland, la compañia había reducido bastante el equipo de personas que estaban encargadas de la documentación, y que ahora poco a poco, desde la empresa están intentando recuperar a gente para mejorar ese aspecto. Están “recuperando” especialistas para formar un equipo en esa dirección.

También hizo referencia a que se está haciendo el esfuerzo por publicar mucho material “electrónico”.

Además ya hemos comentado, que en breve estarán disponibles en castellano (de que se traduzcan son directamente responsables la gente de Danysoft) dos libros sobre XE2. Uno sobre FireMonkey de Marco Cantú y otro sobre Delphi XE2  de Francisco Charte.

 

documentacion-proyectoPREGUNTA (Documentación)

Falta de más documentación en general castellano.

En la DocWiki, por ejemplo, de Embarcadero podemos encontrar traducciones (además del Inglés) en Francés, Alemán y Japonés. Muchos de los usuarios de la comunidad Hispana (que es muy amplia) se preguntan si hay posibilidad de que esto cambie. ¿Hay intención de ampliar estos idiomas con el Español?

¿De quién depende esto?  ¿Hay posibilidad de que la comunidad ayude en esto?

En este caso Pawel, al ver nuestro interés especial en este tema, se dirigió hacia sus notas de mesa y cogiendo bolígrafo y papel nos hizo un gesto similar a “¡contadme!, ¡estoy escuchando!”  lo cual nos dejó un poco descolocados porque se nos estaba dando a entender su interés por conocer realmente esas inquietudes, y de hecho, fue apuntando los comentarios que iban siendo asistidos por la traducción de Daniel Valenzuela. En ese punto, salieron temas como la necesidad de que al menos una pequeña parte de la documentación se suministrara en español -Salvador mencionó la Guia de Object Pascal, algo que a Salvador le parecía importante ya que entendía que era la base del lenguaje-. De igual forma se sugirió a Pawel que muchos de los vídeos que se producen desde Embarcadero se podrían subtitular, si no al castellano por no haber recursos humanos suficientes para ello, al menos al inglés, intentado favorecer a un grupo mas o menos numeroso de desarrolladores hispanos, que si bien no tienen problema en la lectura del inglés sí carecen de la habilidad lingüística necesaria para entenderlos. Y además mencionamos las wikys de nuestros respectivos entornos, que podrían representar un primer paso para que miembros de nuestra Comunidad también participaran y apoyaran la traducción.

Esa actitud receptiva, para ser justos, no era nueva. Desde Danysoft, han mostrado interés por apoyar este tipo de iniciativas. Si desde la Comunidad hay propuestas firmes y concretas en este sentido, ellos están dispuestos a mediar con Embarcadero para ver la viabilidad de realizarlas, nos decían.

En este punto, charlamos un rato, y la conclusión que yo pude extraer, es que no es algo que pueda hacer Danysoft por cuenta propia, ni la Comunidad Hispana de forma independiente, sino que parece que la solución vendría en colaborar de forma conjunta.

¿Cómo? Es algo que habría que discutir.

vclPREGUNTA (VCL)

Ya había salido el tema en una pregunta anterior, pero volvimos a incidir en el tema, pues actualmente todos nuestros proyectos están basados en ellas.

Muchos usuarios están preocupados por el futuro de la VCL. Ahora con las nuevas librerías FireMonkey multiplatarforma ¿Qué pasará con la VCL? ¿Pueden las nuevas librerías sustituir a la VCL?

Ya lo comentó antes y también durante la presentación, volvió a realizar hincapié en ello. Ellos van a seguir trabajando como hasta ahora en la VCL. Van a seguir ampliándola, mejorándola, corrigiendo bugs,… 

Sin ir más lejos, ya se está preparando el soporte y todo lo necesario para que funcione sobre Windows 8, la próxima versión de Windows.

 

embarcadero-delphi PREGUNTA (IDE)

Si un usuario tuviera que escoger una herramienta de desarrollo.

(a) ¿Porqué debería escoger a día de hoy RAD Studio, respecto a otras?

Si tuviera que destacar una característica (sólo 1) de RAD Studio/Delphi, ¿Cual escogería?

(b) Por el contrario, si tuviera que escoger una caraterística o un aspecto a mejorar ¿Cual escogería?

Él escogería RAD Studio por ser un verdadero Rapid Application Development. Realmente el IDE de Delphi es muy potente y como característica positiva y que a Pawel le parece destacada respecto a otros, ha hablado de ObjectPascal; Como lenguaje le parece “agradable/amigable”.

En contrapartida, como característica a mejorar (y que lo pone en desventaja frente a otros entornos de desarrollo) nos ha comentado que la documentación sería un claro apartado a mejorar.

 

PREGUNTA (VCL)

vcl_cODEMuchos usuarios consideran que los componentes de la VCL no han sufrido cambios ni mejoras significativas desde que se incorporaron a las paletas de componentes desde las primeras versiones de Delphi.  El caso de las rejillas de datos, podría ser uno de los ejemplos mas claros de ello. No sabemos si estarás de acuerdo o si Embarcadero piensa que esto es así.

En esta pregunta nos respondió que no estaba de acuerdo en eso y que sí se habían hecho cambios, se habían añadidos propiedades y mejorado con los cambios que el entorno recogía.

____________________________________________________________________

Hasta aquí es lo que dió de si la charla con Pawel.

La verdad es que nos hubiera gustado plantearle muchas más cuestiones y charlar más rato con él (a mi personalmente me resultó muy agradable y comunicativo), pero hay que reconocer que la presentación fue muy “densa” (para todos) y en estos momentos ya estábamos “fuera de hora”. Ellos debían recoger el material para coger el vuelo y se trataba de “charlar” un rato y no de realizar un “interrogatorio” exhaustivo.  ;-)

Antes de marchar, también tuvimos oportunidad de hablar de forma distendida con Daniel Valenzuela de Embarcadero, sobre el tema de la Comunidad Hispana, de los recursos existentes (o no existentes) y de que pueda realmente cambiar esto. La idea extraída de la conversación, es que ellos están dispuestos a apoyar cualquier iniciativa que podamos llevar a cabo desde la Comunidad, dentro lógicamente de sus posibilidades.

Creo que tanto Salvador como yo, quedamos satisfechos de cómo se había desarrollado la charla y de que se hubieran mostrados receptivos a conocer los problemas de la Comunidad Hispana, aunque somos conscientes de que esto tan solo es un pequeño paso y que todavía pasará tiempo hasta que podamos ver cumplidos muchos de estos deseos y necesidades.

sjbar011
Foto de Salvador y yo con Pawel, una vez finalizada la charla.

Existe algún fragmento sonoro de sus respuestas, y en el caso de que alguno de vosotros me haga llegar su interés por escucharlo se lo puedo enviar, pero ya os anticipo que su mala calidad me hizo valorar no exponerlos públicamente ni recomendarlos.

Esperamos que os haya parecido interesante, para nosotros sí lo fue. Gracias desde aquí a la gente de Danysoft y hasta la próxima.

NOTA: Aquí podéis ver otra de las fotos (esa bastante simpática).

Un saludo.

Categories: Delphi, Offtopic, XE2 Tags: , , ,

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).

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

Leer más…

Categories: Delphi, 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.