Seminario Web gratuito: 4 horas con Delphi
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.
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.
En 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…
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.
Hace 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.
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.
Como 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.
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.
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.
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.
Hola a todos.
Esta entrada es en relación al encuentro de desarrolladores Delphi que tuvo lugar en Barcelona el pasado día 8 de Marzo (el día 9 se celebraba en Madrid).
Inicialmente iba a asistir pero a última hora (el mismo día 8 por la mañana) los “planes” que tenía quedaron cancelados. Contacté con la gente de Danysoft en Madrid y me comunicaron que no había problemas, que aunque no tuviera reserva podía ir. Realmente no estaban todas las plazas cubiertas, pero tampoco quedaban muchos asientos libres (como podéis ver en las fotos más abajo).
Los contenidos fueron interesantes, como viene siendo habitual en las últimas presentaciones, aunque en mi opinión muy similares a los que se vieron en la presentación del producto hace unos meses. Mi esperanza era que se avanzara un poco más. Aunque también hay que tener en cuenta que son eventos de “presentación”, no seminarios de formación.
La primera gran sorpresa (muy agradable, por cierto), por parte de José Luis García, representante de Danysoft, es que ya está disponible el libro de Francisco Chartre, “La guía de Delphi” (en la versión XE2). No sólo que ya está, sino que lo vimos en “primicia” pues el día anterior había salido de imprenta. Estoy a la espera de que desde Danysoft me comenten datos para poder adquirirlo (en cuanto los tenga os los comento) y además si estáis entre los asistente a este encuentro tendréis un pequeño descuento.
Para acceder a la compra podeís ir a esta dirección en la web de Danysoft.
Los datos un poco más prácticos del evento se pueden consultar desde la página de Danysoft; Ahí podéis ver un poco los temas tratados.
Recordar, ya que salieron en el evento, que la página desde donde se pueden acceder a los ejemplos de las últimas versiones de RAD Studio es:
http://docwiki.embarcadero.com/CodeSamples/en/Main_Page
Desde ahí hay una sección donde están los nuevos para la versión XE2; Aquí es donde podemos encontrar los específicos de estilos y FireMonkey:
http://docwiki.embarcadero.com/CodeSamples/en/Category:XE2
Todos los ejemplos están en Sourceforge; Los referentes a XE2 aquí:
http://radstudiodemos.svn.sourceforge.net/viewvc/radstudiodemos/branches/RadStudio_XE2/
Ahí se pueden encontrar las demos de LiveBindings, de Firemonkey, Datasnap,… temas tratados en la presentación.
Finalmente, si alguna “pega” hay que ponerle al evento (por ser un poco “tiquismiquis”) fueron los problemas técnicos con el proyector (o mejor dicho con la configuración de la resolución de este) que deslució un poco las explicaciones y los ejemplos; Y por mi parte, como ya he comentado antes, tal vez eché en falta algo más de profundización en algún tema.
Os adjunto algunas fotos de la sala, en el hotel Torre Cataluña.
En el grupo de Facebook, Delphi Solidario, Rafa Fernández ha publicado alguna foto más.
AÑADIDO: Desde Danysoft han en esta página las fotos (tanto de Barcelona como de Madrid) del evento, algunos enlaces, el documento con la presentación que se utilizó y alguna cosas más. Ahí mismo podéis encontrar datos sobre promociones y descuentos accesibles a usuario que compren licencias.
Un saludo y espero que nos veamos en la próxima.
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.
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.
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.
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.
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:
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).
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.
Y esto es todo, hasta la próxima.
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.
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.
Desde los foros del Clubdelphi me llega este enlace. Siempre me ha gustado Mafalda desde que era pequeño y creo que esta imagen explica bien que es eso de la “S.O.P.A”.
Un saludo.
En este caso ha sido un poco más larga la espera desde mi última publicación. Diferentes motivos y diferentes razones han hecho que este impás haya sido un poco mayor.
Aprovecho desde aquí, para desearos un buen año; Que este que comenzamos ahora sea para todos nosotros mejor que el anterior.
Empiezo por reseñar sobre la última actualización de IDE Fix Pack de Andy. llevo tiempo usándolos con diferentes IDE’s de Delphi al igual que otras utilidades que podemos encontrar en su web, como las DDevExtensions. Si no las conocéis os recomiendo que al menos os deis una vuelta por su página.
También quiero resaltar, la serie de artículos de Rodrigo sobre WMI (a modo de recopilatorio). Si alguna vez necesitáis encontrar información sobre el tema, a parte de aquí en el blog, donde podéis encontrar algunas entradas al respecto y los componentes GLibWMI, el lugar al que tenéis que ir a parar es al blog de Rodrigo (The Road to Delphi).
La información sobre el tema es muy grande. Os coloco los enlaces a algunas de las últimas entradas relacionadas, aunque también podéis encontrar herramientas como “WMI Delphi Code Creator” y otros artículos interesantes.
Desde el Grupo de Usuarios de Delphi en Australia (en la otra punta del mundo –literal para los que estamos aquí en España-), os aconsejo esta buena entrada sobre creación de escenas en 3D utilizando FireMonkey. Conceptos complejos que explicados de forma sencilla y detallada nos pueden ayudar a comenzar con este tema.
Aparte de las explicaciones de determinadas partes del código, se puede descargar la aplicación (tanto el ejecutable, como los fuentes). Además de encontrar otras referencias, como librerías de objetos a utilizar.
Cierro aquí esta breve entrada.
Como siempre los comentarios y sugerencias son bien recibidas.
Un saludo.
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.
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.
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.
[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.