Barcelona y RadStudio XE2: Una cita que no te podías perder.

octubre 7, 2011 en 64bits, Delphi, Presentaciones, Seminario web, XE2

 Ayer leía con bastante interés una de las últimas entradas del blog de Neftalí, RAD Studio XE2 World Tour: Barcelona,  en donde Germán compartía con nosotros lo que fue el evento de Barcelona y recopilaba bastantes enlaces tanto a fotografías como a documentación. Por supuesto, os aconsejo la lectura del mismo, ya que nos da una buena idea de lo que ha sido y lo que ha englobado respecto a las novedades de la nueva versión. El evento, es decir la presentación de Rad Studio XE2 en Barcelona, como sabéis se enmarcaba dentro de una gira mundial que está haciendo Embarcadero y en la que esta dando a conocer la última versión de su producto estrella, y los principales evangelistas en estos casos acompañan a los partners locales en la celebración de estos eventos.  El partner español, Danysoft, organizó la escala de la gira en España el 27 y 29 de Septiembre, Barcelona y Madrid, dejando para unos días más tarde el evento de Lisboa.

En nuestro caso, este año, contábamos con uno de los evangelistas de Embarcadero para Europa, ya conocido por nuestra comunidad: Pawel Glowacki que había estado anteriormente en España con motivo de la presentación de alguna de las versiones anteriores del compilador  (creo recordar en la presentación de Delphi 2007  ). Pawel escribe en los blogs de Embarcadero y hemos podido leer o compartir algunas de sus entradas. En ocasiones le hemos citado, sin ir mas lejos en la Colección de recursos “on line” sobre D2010 (Pawel Glowacki) donde apuntábamos a la entrada de su blog Delphi 2010 Online Resources, muy interesante, que contenía muy buenos recursos para Delphi 2010. De hecho, el que viniera Pawel en esta ocasión pienso que no es casual, puesto que Embarcadero se ha tomado muy en serio la gira.

El enfoque de Germán en su blog es un poco diferente a como, en esta ocasión, yo he planteado las notas del evento. En realidad, mientras escribo estas lineas pienso más en compartir como se ha vivido, las sensaciones que me ha transmitido y la expectación que ha generado, complementando en la medida de lo posible, el artículo de mi amigo. De hecho, unas horas antes de subir a su servidor la entrada, me comentaba en unas lineas de correo el contenido de la misma: La idea era un poco coordinarnos y que ese contenido de ambos blogs, fuera del máximo interés, pero la lectura de su entrada, muy completa, me hizo pensar que podría darle un enfoque más de comunidad, marcando algunas ideas claves vistas en la presentación, puesto que él ya había cubierto casi todo lo que se podía mostrar respecto a los enlaces mas significativos.

Para empezar, decir que todo está cambiando. Creo que no sería exagerado decir que la barcaza que para muchos navegaba sin rumbo cierto, ¡que iba a hundirse de un momento a otro! jajaja, dejando en su naufragio un reguero de insensatos fanáticos de nuestro compilador, :-)  esa barcaza de la que habían saltado precipitadamente por miedo ahogarse, ahora parece mantenerse a flote, desafiando a quienes pronosticaron y escribieron la crónica de su muerte;  y no solo se mantiene a flote sino que empieza a enderezar su rumbo con claridad: La incorporación de Firemonkey como puerta hacia el trabajo en múltiples plataformas, ha descolocado a muchos, a propios y a extraños, que habían dado por hecho que iba a llegar de la mano de la VCL y la expectación no se ha hecho esperar. Ha sido una de las cartas clave para entender el por que existe mayor interés que en anteriores ocasiones.

¿Se podría decir que vamos a poder vivir una segunda edad de oro de nuestra herramienta de desarrollo, de nuestro querido Delphi? Es dificil de saber, ¿quién puede pronosticarlo? pero las cifras hablan, y en España, las peticiones de asistencia a la presentación de RadStudio XE2 ha desbordado cualquier pronostico, y obligó a Danysoft a repetir en (on line) las sesiones, para todos aquellos que no pudieron asistir por haber excedido el aforo previsto. Eso no había pasado en ninguno de los años anteriores y yo lo puedo decir no porque me lo hayan contado, sino porque lo he visto y lo he compartido desde las páginas de mi blog. Bueno. Vosotros ya lo sabéis. Muchos habéis seguido esas entradas que siempre son un poco anecdóticas.

Pero quizás, como contrapunto a la historia del evento, existe otra que transcurre en paralelo y que ciertamente es desconocida por muchos. :-)  Tiene que ver un poco con nuestra Comunidad y de alguna forma con la presentación. Tiene que ver con un grupo de facebook que se nutre cada día de un numero mayor de compañeros, y tiene que ver con la aceptación de una conciencia de Comunidad que ha llevado a muchos programadores hispanos a apoyarse y a reclamar el apoyo de Embarcadero. De hecho, no fue casual que pudiéramos conversar y discutir Germán y yo la noche anterior, acerca de los temas de nuestra Comunidad, de sus problemas e inquietudes. Ni fue casual, ni debería ser algo extraordinario, ya que lo realmente anormal era la situación heredada de una comunidad muy diseminada,  con poca relación entre los distintos grupos y propensa al aislamiento: muchas veces he pensado que había un lema escrito a fuego en muchos de los grupos hispanos, o estás conmigo o contra mi. Y quizás uno de los cambios que estamos padeciendo es precisamente el salir al exterior, con menos complejos, y el que existan un entramado mas extenso de relaciones. Y en eso, las redes sociales, la nueva concepción de la web social ha tenido bastante influencia.

RadStudio XE2, va a contar con una Comunidad hispana muy distinta de la que conocieron las versiones anteriores. Ejemplo de ello, y sin ir mas lejos, ha sido la ayuda recibida de Danysoft, clave en la preparación de estas entradas, facilitándonos -no ya solo a nosotros, sino a cualquier blogger que lo hubiera solicitado- la documentación del evento, las fotos, el tiempo que Pawel nos concedió (unos 40 minutos) y que nos permitió no solo conocer su opinión del producto sino acercarle algunas peticiones que pensábamos ayudarían a nuestra Comunidad. Todo esta cambiando poco a poco y existen muchos compañeros en la comunidad hispana que están apostando por esa transformación. De la misma forma, los partners y el propio Embarcadero, desde que éste tomo las riendas de nuestro producto, y mas concretamente a partir de Delphi 2010, apostaron por una política de acercamiento a la comunidad, bien facilitando el contacto de los partners con los compañeros que participábamos activamente, bien incrementando el numero de recursos en castellano.  Nadie puede negar que algo se ha avanzado.

En el grupo de facebook publicamos algunas fotos que muestran la sala en la que se vivió el evento y se puede ver lleno. Un salón con disposición en abanico, con sillas fijas que resultaba bastante acogedor aunque también por esa razón, limitado en cuanto a capacidad. Si hubieran habido mas plazas, con absoluta seguridad se hubieran llenado también a tenor de los comentarios que hemos podido compartir con Jose Luis Castaño, quien está al frente de la empresa española, partner de Embarcadero. Pero realmente nadie se esperaba tanta expectación.

En cualquier caso, lo indudable y evidente es que el evento, una vez que se fueron conociendo y concretando, en las semanas previas al inicio de la gira, las novedades del producto: la incorporación de la multiplataforma, los 64 bits, el desarrollo para mac OS X e iOS(iPad o iPhone) y lo que afectaba propiamente al desarrollo que ya existía, como 2D/3D, livebindings, datasnap y estilos, despertó una curiosidad tan grande que movió de los acomodados sillones a muchos compañeros que querían ver de cerca y como se dice en mi tierra, “palparlo”.

El evento, para aquellos que no pudieron asistir se celebró con bastante normalidad, aunque en este caso, siendo justos e intentando ser objetivos, hubo cierta mala previsión del horario, de los tiempos de las sesiones, y posiblemente, fuera esa una de las razones de que hubiera algún tema que se viera muy por encima y otros, más accesorios, prácticamente no se pudieran ver. Posiblemente, y es mi opinión, hubiera sido necesario planificar una jornada mas amplia y haber reservado para la tarde, las últimas sesiones.

Para mi, este problema fue lo único que lo deslució un poco, si es que se puede aplicar esa calificación a una jornada que se resolvió con un notable éxito. En fin… resultaba un poco chocante ver a uno de los técnicos de Danysoft en Barcelona, correr y saltar de diapositiva en diapositiva, con prisas, en un tema tan importante (al menos a mi sí me lo parece) como lo es el cambio en el compilador, de 32 a 64 bits  y la relación de problemas y puntos “negros” que se conocían, en lo que afecta a la migración de los desarrollos. Creo que hubiera sido difícil comprimir en menos tiempo y de hecho, al acabar recibió una merecida ovación del público que asistía.  :-)

Fue una jornada muy intensa, como bien dice Germán.

Es mas, si a la salida del mismo o pasados algunos días alguien me pregunta de qué trataba aquella jornada, hubiera dicho sin pestañear: -Firemonkey. Se ha visto firemonkey, sin duda.

A lo cual nuestro interlocutor sin duda exclamaría:

-Pero se vería algo mas… ¡no es posible!

-No… firemonkey… y … y hojas de estilo.

-¿Solo…?

-No… firemonkey… y … y hojas de estilo y los nuevos conectores a datos.

Realmente creo que eso es al final lo que mas ha calado del evento. La capacidades gráficas (2D/3D) de la nueva plataforma   FireMonkey (añadido al el hecho de que ha abierto una puerta a la multi plataforma representada en el acceso al mundo de Apple y los dispositivos móviles). En definitiva, pienso que nuestra Comunidad empieza ahora a analizar de que forma puede integrar todas esas nuevas capacidades gráficas en los propios modelos de negocio.

Frente a otras alternativas el posicionamiento de Firemonkey es claramente estrategico:

 

Como nos explicaron en la diapositiva superior, tenemos en nuestras manos una plataforma que no solo saca partido en lo que afecta a crear aplicaciones con interfaces ricos y altamente atractivos, algo demandado hoy por hoy por nuestros usuarios, con posibilidad de uso de las capacidades 2D y 3D en las aplicaciones especializadas, sino que ademas se potencia con un alto rendimiento por  la explotación de la GPU si el entorno lo permite. Y eso suena muy bien.

Si además, te muestran -Pawel lo hizo durante la 2ª sesión, previa al descanso- que detrás de todo esto, detrás de las grandes palabras que parecen esconder conceptos intrincados y complejos- está la sencillez del uso de los componentes, y ves como con dos clicks de ratón, puedes crear un escenario complejo y manipularlo en tiempo de diseño, añadiendo efectos, transiciones, movimientos… además de sonarnos bien nos, puede hacer sonreír. Yo mismo, pensaba mientras veía a Pawel manipular la imagen 3Ds, (logo de Firemonkey), que aquella imagen bien pudiera convertirse en un catalogo de empresa, un expositor de artículos o cualquier otra cosa imaginable.

VCL versus FMX

De la sesión de Firemonkey, cabría reseñar la pregunta que quedaba un poco en el aire: ¿Qué iba a pasar con la VCL?. Era algo que caía por su peso… por qué… claro, ambas bibliotecas se presentaban como escenarios que no eran compatibles y la mayoría veía con recelo la posibilidad de que la VCL fuera abandonada, con todo lo que esto puede suponer. Así que este punto fue algo en lo que se insistió claramente.  Según las palabras de Pawel, Embarcadero tenía la pretensión de mantener tanto la VCL como FMX, y dejaba a los desarrolladores que fueran ellos quien eligieran el modelo a seguir. Seguir con la VCL, en el modelo de Windows tanto para 32 bits como 64. O abrirse al nuevo escenario que presenta el modelo FMX, con multiplataforma, con 2D/3D, con conectores avanzados para la tecnología móvil. Posiblemente esto fuera lo idea en aquellos proyectos nuevos que se pudieran emprender.

Por desgracia hay un pero en todo esto… algo que fue comentado también en la sesión y que estaba en la mente de todos. La pésima documentación (¡lo de pésima no lo dijeron ellos, es lo que todos pensaban!), inexistente, que hace pensar a muchos la dificultad que puede existir para explotar al 200% las nuevas capacidades gráficas. También en ese punto, a la pregunta de algún compañero que asistía al evento de qué iba a hacer Embarcadero en este tema, se respondía en el sentido de la conciencia real que existe del problema en la empresa, y  de que ya se estaba trabajando en ello. Y que además, iban a ser frecuentes las mejoras en ese punto. De hecho, conocéis que en estos días anteriores ha sido publicado el primer update de RadStudio XE2, resolviendo algunos errores, temas de licencia que no habían sido resueltos correctamente e incluso, incrementos en el rendimiento gráfico.

¿Y el resto de sesiones?

El siguiente paso, unos 25 minutos fuera del horario previsto, fue la sesión dedicada a los estilos, aplicables tanto a la VCL como a FMX. A mi particularmente fue algo que me gusto especialmente, ya que va a proporciones a nuestros desarrollos una notable mejora de nuestro interfaz con un coste mínimo. La posibilidad de tener estilos predefinidos, o que el programador pueda crearse los propios, era algo que se había demandado desde siempre.

La imagen que nos mostraba German en su entrada era bastante explicita de esto:

 

Y para conseguir esto, para darle la oportunidad a nuestro usuario, que a fin de cuentas es quien va a usar nuestra aplicación y quien debería decidir cómo quiere verla, bastaba cuatro lineas de código: algún componente sobre el que mostrar los estilos disponibles y la rutina de selección.

Estaréis de acuerdo en que algo así, ha sido siempre añorado, sin tener que reescribir la aplicación en cada proyecto.

No obstante, creo que todos nos quedamos bastante convencidos de la forma en que esto se ha integrado en el entorno de desarrollo. Ese punto creo que se debe destacar también. Durante esta sesión se nos mostró como añadir nuevas “capas” en el estilo del componente y como la biblioteca FMX, explotaba el rendimiento en el dibujado de los controles, frente al sistema que utiliza la VCL, con dependencias de Windows.

Este es el aspecto del editor de estilos:

La impresión que yo al menos recibí, de este tema es que se había simplificado el diseño de controles, que nos permitirá entrar en una dinámica que hasta ahora no conocíamos.

Respecto al resto de sesiones, tras un descanso en el que los asistentes (yo incluido) aprovecharon para conversar de forma distendida en la sala anexa, y ya con el tiempo en la zona roja de la agenda del día, se vieron los 64 bits (vía breve y concisa) y la nueva conexión a datos, soportada tanto por la VCL como por Firemonkey, en la que gracias a Dios, Luis Alfonso Rey, de Danysoft,  sí se pudo detener una cantidad razonable de tiemp0. Según mis anotaciones  desde las 13:28 hasta las 13:42, dato anecdótico que tengo apuntado y que seguramente tomé por alguna razón. Posteriormente se amplió con varias demos que mostraban en tiempo de ejecución como podíamos enlazar tanto a objetos como a  fuentes de datos, siguiendo el sistema mas tradicional. Incluso llegamos a ver interactuando un cubo 3D en el que se acoplaba una rejilla de datos que mantenía su capacidad de edición mientras el cubo podía ser movido en relación de cualquiera de los 3 ejes.

Es decir que lo que se ponía a disposición nuestra es un concepto mas abierto y abstracto de conexión, mas ambicioso, cuya finalidad era precisamente que cualquier fuente de datos pudiera ser enlazada de una forma sencilla. La gracia del asunto, en mi opinión, está en que podemos entrar de lleno en un enfoque mas orientado a objetos de una forma natural y eso habilita nuevas opciones.

En una de las diapositivas incluidas en los pdf que Danysoft ha publicado en su web, se nos muestra el editor de expresiones en tiempo de diseño, que nos permite enlazar la fuente de datos con el origen (sea el que sea).

 Cada una de las lineas que muestra la rejilla central se corresponde con uno de esos enlaces (vivos) y dependiendo de que tipo de relación sea creada necesitara un motor u otro (TBindScopeDB, TBindScope o TBindingsList)

¿Y más allá de eso…?

Bueno, mas allá de eso se pudo ver durante la jornada algunas cosas que ya habíamos visto en varios vídeos, como ejecutar nuestra aplicación en un mac. También se vieron algunas pinceladas de radphp y de los nuevos conectores , algo de datasnap y de la nube, y practicamente nada de appwave, que fue si no recuerdo mal el último tema que se vió.

Por eso os decía que al final me quedé un poco con la idea que la presentación de las novedades, se ceñia a lo que parecían los temas mas vistosos (aunque no por eso menos importantes): Firemonkey, Estilos y Livebindings.

Imagino que esto puede dar pie a que en los próximos meses se puedan celebrar eventos on line específicos, lo cual no parece malo.

Hay algunas noticias que quedan en el aire y que también en los sucesivos meses van a ir despejándose. Me parece muy importante, y me ha encantado, que Embarcadero haya propuesto a Francisco Charte, autor de numerosos libros desde las primeras versiones, desde Delphi 2 hasta Delphi 2006 escribir sobre RadStudio XE2.

Por otro lado, respecto a Marco Cantú, aunque ya era conocido porque se había publicado en su blog, Danysofr resaltó su próximo libro, del que únicamente sabemos que ahondará en la plataforma FireMonkey y RadStudio XE2.

Ambas noticias pienso que se han recibido con mucha satisfacción.

Y sobre nuestra comunidad, seguimos trabajando… Como os decía en una entrada anterior, el número de compañeros crece día a día (en los próximos días sobrepasaremos el centenar) . En esta semana que ha transcurrido, se presentaron “voluntarios” a echarme una mano en la administración del grupo:  German Estevez y Eliseo Gonzalez.  :-D   Y no dudo que a medida que vayan creciendo encuentre el apoyo de otros compañeros.

Nada mas. Un notable alto para Danysoft por la organización del evento, que en mi opinión ha cumplido con creces las expectativas. Y me despido esperando que esta visión personal de la presentación de RadStudio os haya gustado.

Una imagen vale más que mil palabras

septiembre 23, 2011 en 64bits, Entrada Diario, Facebook, FireMonkey, Presentaciones, Recordatorio, Seminario web, XE2

No voy a decir nada más. Cualquier cosa que diga siempre hay quien dirá que si este es un fanático de delphi, que si yo que voy a decir, que si…   bla, bla, bla…

:-)

¡Simplemente disfrutad!, perded unos minutos con este vídeo que muestra las nuevas posibilidades que se abren con nuestro entorno de desarrollo. Lo vais a ver por vosotros mismos. ¡A mi no me hace falta entender la narración, para de un simple vistazo saber que vamos por buen camino!.

Estais viendo una de las versiones de Delphi mas comprometidas y ambiciosas de su historia.

Ahhhhhh… y nuestra Comunidad sigue creciendo.  Muchos compañeros estamos luchando por ella, no ya para nuestro beneficio personal, sino para tener un sitio donde hablar, discutir, compartir cosas. Únete a nuestra Comunidad y se parte activa de ella.

 

 

 

 

 

TPanelMiniaturas (primera versión v1.1110)

noviembre 21, 2010 en Código, Componentes, Delphi, Entrada Diario

Para los programadores que trabajamos habitualmente solos, y ese ha sido mi caso durante algunos años, resulta verdaderamente agradable iniciar cualquiera de las actividades o colaboraciones que te permiten salirte del rutinario aislamiento o soledad. Es complicado no poder compartir con otras personas algunas inquietudes del día a día, por decir algo, o que las cosas haya que hacerlas de determinada forma y no de otra, porque realmente muchos de los que te rodean ignoran lo que haces, y ni siquiera lo comprenden, y te ven como el individuo que está encerrado en una habitación con varios servidores, como si uno fuera un domador y se encerrara en la función diaria con sus fieras. :-)

Así que si ha sido también vuestro caso, podréis entender que sin ningún motivo realmente importante le comentara a Neftalí la idea de crear un componente. La idea… ¡divertirse!… ¡claro!… divertirse y aprender. El artículo que planteaba la creación de las miniaturas en tiempo de ejecución era una buena excusa :-D . Y con el blog pasa algo parecido, que acaban siendo ventanas hacia el exterior, buscando aire fresco e ideas que nos hagan salir de la rutina y nos motiven. Si hay algo que he aprendido durante estos años, es que el trabajo en equipo es la primera piedra del aprendizaje y que siempre se nos pega algo, bueno o malo, de la persona con la que has compartido algo.

Ha sido muy enriquecedor colaborar con Germán, por diversos motivos, entre los cuales quisiera resaltar su profesionalidad, ya que cuando uno es capaz de tomarse con seriedad y respeto las cosas pequeñas, como puedan ser las cuatro lineas que hemos implementado para el componente, también lo hará con los proyectos de envergadura. Y eso siempre ha sido algo que valoré desde que me conozco. No hay clientes pequeños o grandes, ni proyectos grandes ni pequeños. Quien no es capaz de tratar con respeto a un cliente pequeño tampoco lo hará a uno grande y quién no sabe abordar de forma profesional un proyecto pequeño tampoco lo hará en uno grande. Esas milongas de quien dice: ¡tranquilo que cuando esto sea grande lo haré mejor son solo eso… milongas!  :-)

En fin… He disfrutado mucho estas ultimas semanas colaborando con Neftalí.

No voy a extenderme mucho mas, ya que la idea es que sirva de excusa para generar nuevas entradas, muchas de ellas a través de facebook, medio al que estoy ahora mismo dando prioridad sobre el blog, de forma que podamos tener a través de facebook y twitter el día a día y reservar las entradas propiamente dichas al blog de Delphi Básico.

Estas son las rutas al componente y a la demo que hemos preparado para que veais en acción a nuestra fiera.

;-D

Germán estaba preocupado de que la demo fuera lo mas completa y ha puesto mucho interés en que además tuviera una apariencia lo mas agradable posible.

Sources TPanelMiniaturas

Demo EXE TPanelMiniaturas

Faltan muchas cosas todavía que revisar y otras funcionalidades que implementar. Y para que veais un poco como lo hemos vivido, os he añadido una tabla que representa la evolución de cambios en el componente. Estás anotaciones existen en el código fuente pero de forma adicional le propuse a Germán mantener un registro de cambios accesible desde cualquier lugar por lo que los ubicamos en una de las base de datos de mi servidor, de forma que pudiera ser consultada por ambos.

Esta es la tabla:

! Tarea Fecha
Solicitud
Tipo Solicitado por Notas Hecho
TPanelMiniaturas
Recuperación resumen bugs y mejoras pendientes proxima versión Resumen bugs pendientes y mejoras. X
11/11/2010 Gestiones Admon VERSION 2011.11.10
Mascara protección anticopia Añadir mascara tipo imagen y propiedad activación a nivel de panel y contenedor
11/11/2010 Nueva PROX. VERSION
Funcionalidad Rotar Imagen Display 11/11/2010 Nueva
Activacion multiples filas y/o columnas de miniaturas
11/11/2010 Nueva PROX. VERSION
Funcionalidad Invertir Imagen Display 11/11/2010 Nueva Funcionalidad invertir la imagen.
Separacion de las constantes en un modulo independiente Seria conveniente separar las constantes en una unidad independiente
10/11/2010 Mejora
Funcionalidad Mover paneles Se desea poder en tiempo de ejcucion la posicion de los paneles. Nota: Ya existe en miniaturas.
10/11/2010 Nueva PROX. VERSION
Detectado problema persistencia Evaluar problema persistencia diseño con extensiones jpeg, gif
10/11/2010 Arreglar fallo PROX. VERSION
Evaluar diseño correcto ascendencia TPanelMiniaturas ¿Se ha elegido correctamente el ascendiente de TPanelMiniaturas?
10/11/2010 Mejora PROX. VERSION
Copiar y pegar imagenes desde Portapapeles Añadir una imagen desde el portapapeles.
10/11/2010 Nueva PROX. VERSION
Evaluar cambios en diseño componente por imagenes de gran tamaño
10/11/2010 Mejora
Evaluar el uso de hilos de ejecucion 10/11/2010 Mejora
Funcionalidad seleccion multiple Uso de la propiedad MultipleSelection para acciones en bloque
10/11/2010 Nueva
Funcionalidad Miniatura con ancho y alto variable Ampliar la limitacion de ancho fijo en la miniatura
10/11/2010 Mejora
Añadido evento ONCHANGE Añadido evento OnChange para cambio panel activo X
10/11/2010 Mejora VERSION 2011.11.10
Integración timer en componente Integrado timer para rotaciones automáticas. Añade propiedades Animate y AnimateInterval. X
10/11/2010 Mejora VERSION 2011.11.10
Funcionalidad eliminar panel 10/11/2010 Nueva VERSION 2011.11.10 procedimiento DELETEPANEL X
Cambio parámetros procedimiento ADDIMAGESFROMFOLDER Los parámetros no era definitivos y se revisan X
10/11/2010 Mejora VERSION 2011.11.10
Correccion bug procedimiento SETTEXT. Detectado loop en tiempo de ejecución X
10/11/2010 Arreglar fallo VERSION 2011.11.10
Propiedades ASSOCIATEDIMAGE Y ASSOCIATEDTEXT Permitiran asociar un componente externo para el display y el texto. X
10/11/2010 Nueva VERSION 2011.11.10
Funcionalidad arrastrar ficheros desde EXPLORADOR WINDOWS Permitir arrastrar ficheros desde explorador. Mas funcionalidad y utilidad para el componente X
09/11/2010 Nueva VERSION 2011.11.9
Correccion Metodo NEXT Si Itemindex = -1 decidir que hará next. Se ha tenido en cuenta estetica y se han hecho pruebas. X
09/11/2010 Arreglar fallo VERSION 2011.11.9
Ampliada funcionalidad arrastre ficheros a directorios Se amplia el arrastre de carpetas dentro del arrastre de ficheros X
09/11/2010 Mejora VERSION 2011.11.9
Propiedad SELECTIONCOLOR Y SELECTIONTYPE Reorganizacion propiedades que afectan al foco X
09/11/2010 Nueva VERSION 2011.11.9
Corrección situacion panel con respecto al scroll Añadido calculo para reubicación X
09/11/2010 Arreglar fallo VERSION 2011.11.8
Propiedad AUTOSLIDE Permite que el componente miniaturas se mueva de forma dinamica con el scroll X
08/11/2010 Nueva VERSION 2011.11.8
Liberar memoria an la seleccion visual de miniaturas Reparado bug por prevención de memoria no liberada X
08/11/2010 Arreglar fallo VERSION 2011.11.8
Correccion Procedures SELECCIONAITEM y DOCLICKPANEL Añadido codigo para no ejecutar si no ha cambiado indice. X
08/11/2010 Arreglar fallo VERSION 2011.11.8
Doble buffer Mejora en la eliminación del parpadeo X
08/11/2010 Nueva VERSION 2011.11.8
Funcionalidad resaltar foco Rutinas graficas para resaltar foco. Añadida propiedad TIPOSELECCION para gestionar tipo resalte. X
05/11/2010 Nueva VERSION 2011.11.5
Correccion Funcionalidad Metodo Click panel Se redefine el procedimiento DoClickPanel para no anular el evento. X
05/11/2010 Mejora VERSION 2011.11.5
Correccion Propiedad SETINDEXSELECTION No saltaba método. Se cambia asignacion. Ver comentarios en unidad componente. X
05/11/2010 Arreglar fallo VERSION 2011.11.5
Propiedad ITEMINDEX (gestiona foco y navegación) Esta propiedad es requerida en multiples areas. X
03/11/2010 Nueva VERSION 2011.11.3
Funcionalidad navegacion (FIRST, PRIOR, NEXT Y LAST) Procedimientos de navegacion sobre miniaturas. X
03/11/2010 Nueva VERSION 2011.11.3
Correccion lineas ADDPANEL Son eliminadas lineas redundantes que ya eran invocadas en UpdatePanels X
03/11/2010 Arreglar fallo VERSION 2011.11.3
Metodo GETCLIENTHEIGHTPANEL para calculo del Height del Panel Calculo correcto del ancho del panel. Adicion constantes margenes. X
03/11/2010 Mejora VERSION 2011.11.3
Metodos ADDIMAGESFROMFOLDER, ADDIMAGESFROMFILE Y CLEARIMAGES Nuevas funcionalidades para version release componente. X
03/11/2010 Nueva VERSION 2011.11.3
Primer borrador estructura componente Primer borrador componente para discusión X
29/10/2010 Nueva VERSION 2011.11.1
Funcionalidad Grafica Componente Ampliacion funcionalidad base metodo PAINT X
29/10/2010 Nueva VERSION 2010.11.1
Discusion diseño COMPONENTE Discusion preliminar sobre diseño proyecto y componente. Objetivos. Requerimientos, etc… X
29/10/2010 Gestiones Admon VERSION 2010.11.1
Demo Visor Imagenes
Finalizar depuracion previo al release primera version Ultimas revisiones demo previas a la primera release X
10/11/2010 Arreglar fallo VERSION 2011.11.10
Documentacion TPanelMiniaturas
Tarea elaboracion primera documentación 10/11/2010 Nueva VERSION 2011.11.10 X
Añadida primera documentación al componente X
05/11/2010 Nueva VERSION 2011.11.5
TPanelImagen
Propiedades INDEXSELECTION y MULTIPLESELECTION Funcionalidad base selección foco en componente. Creacion del índice de referencia.Ver documentación X
03/11/2010 Nueva VERSION 2011.11.3
TPanelMiniaturas Diseño
Menu contextual para edición colecciones Integración edición colección con IDE X
06/11/2010 Nueva VERSION 2011.11.10

Cualquier comentario, propuesta de mejora, será siempre bienvenida. Así como si quisierais participar y compartir la experiencia con nosotros. :-)

Bueno. Nada mas. Seguid las entradas que vaya publicando Neftalí desde su blog porque son verdaderamente interesantes. Tanto el como yo, iremos complementando la información sucesivamente.

Ahhh… un comentario que olvidaba. En la tabla que os he incluido, figuran las versiones numeradas por la fecha. Finalmente, con la que es la release, decidimos que siguiera otra pauta y cambiamos el año por el numero de versión, por lo que aparece como versión v1.1110, que tomaremos así, de ahora en adelante con motivo de seguir añadiendo y complementando el componente. No tiene mayor importancia el que sea de una forma o de otra.

Enlaces relacionados:

Panel de miniaturas

octubre 31, 2010 en Código, Componentes, Delphi, Taller práctico

Hace unos días, leía con interés una de las entradas de Neftalí. Como siempre, su lectura resulta útil,   y creo que eso es algo que compartiréis. :-)

En esa entrada, cuyo enlace incluyo mas abajo, se dejaban unas lineas de código que crean un ejemplo de visor de imágenes, con un control a través de las miniaturas creadas. Ese tipo de código que suele nacer a raíz de una pregunta en un foro y que luego, tras resolverla y discutir sobre ella, mueve nuestra curiosidad y nuestro ánimo a retocarlo para compartirlo con otros compañeros en un blog.

Este era el enlace de la entrada y del código fuente:

http://neftali.clubdelphi.com/?p=1087

Código completo de la entrada de Neftali

Imagen visor

A mi me pasó mas o menos lo mismo tras leer su entrada. Las dos semanas anteriores había repasado conceptos del diseño de componentes y a la vista de ese código, pensé que me sería “educativo” verme en la tesitura de trasladarlo a un componente para encapsularlo y usarlo desde el IDE. Y en eso me puse.

El blog llega a estar inactivo durante días o semanas en esos casos. Pasa algo similar a cuando me “enfrasco” con alguno de los artículos, que acaban absorbiendo el tiempo. :-D

Con Germán ya tengo algo de amistad, así que le envié un primer borrador de ese pequeño componente para ver si quería compartirlo y participar en la tarea, y de esa forma lo colgaba el también en su blog, junto a  la entrada que lo había motivado.

Estas dos imágenes, se corresponden con unas lineas de código para testearlo y probarlo. Al pulsar sobre la miniatura visualizaría la imagen sobre el display pero realmente el componente principal es el TScrollBox que contiene dichas miniaturas y el resto de controles utilizan los métodos y eventos de dicha clase TPanelMiniaturas para acceder a su funcionalidad.

Presentación

Y esta imagen, al pulsar sobre la imagen de las palmeras, haciendo unas pruebas.

Imagen cargada a través de su miniatura

Mas abajo, se puede ver el componente sobre un formulario cualquiera.  Como permite cargar las imágenes en tiempo de diseño, ya que utiliza las típicas colecciones para recrear las miniaturas, podemos cargar cualquier imagen y hacer uso de la persistencia para que se guarde y sea cargada al inicio.

Vista de diseño. Componente TPanelMiniaturas

Iremos publicando el código y las ideas que nos parezcan oportunas que puedan enriquecer el pequeño ejemplo en versión componente. Estamos en ello  :-)   El único deseo que nos mueve es colaborar y ser útiles a nuestra comunidad.

En mi caso, os iré informando a través de Facebook de los pasos que vamos dando.

Antes de finalizar, quería recordaros que ya se encuentran disponibles los videos de las sesiones de Coderage 5. Aunque se encuentran disponibles en inglés, hay algunos muy interesantes y os aconsejo que les deis un vistazo. Podéis bien descargarlos en formato mp4 o visionarlos desde la misma web de Embarcadero.

Esta es la dirección:

http://www.embarcadero.com/coderage5/sessions

Un saludo a todos.

Lo que nos deja la semana…

enero 24, 2010 en Delphi, Enlace interesante, Entrada Diario, Noticias, Noticias Delphi, WMI (Windows Management Intrumentation

Domingo por la tarde. Hace frío en el exterior y el día ha sido desapacible por el viento y las cuatro gotas de lluvia. Hace un rato, me he sentado delante del portátil mas que nada por revisar el correo y ver si había recibido algo que fuera urgente. Los comentarios de mis amigos sobre la marcha imparable del Barcelona y de cómo va a dejar atrás al R. Madrid resuenan y resaltan sobre el resto de urgencias.  :-)   No, no soy demasiado futbolero, jajajaja pero hay que ver las pasiones que levanta este deporte. En mi caso, seguramente, cuando acabe de escribir estas lineas dedicaré un rato a la lectura de alguno de los libros que he dejado a medias, pero antes tenía pendiente dejar dos comentarios.

Uno sobre la liberación de la version 1.6 de los componentes GLibWMI que Neftalí ha subido a SourceForge, donde nos comenta German que van a estar a partir de ahora disponibles. (*)

No obstante, también pueden ser descargados de la propia web de Neftalí en:

http://neftali-mirror.site11.com/?p=589

Existe en las entradas de su web una introducción al concepto de WMI (Introducción a WMI)

(*) GLibWMI es una librería/biblioteca de componentes enfocados a laAdministración de Sistemas Windows y para ello hacen uso de la WMI (Windows Management Intrumentation) que es la infrastructura creada por Microsoft para la gestión remota o local de datos y operaciones para estos sistemas. Para mas información podéis acceder a la libreria de MSDN, donde se detalla la información con detalle:

http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx

Y el segundo comentario tiene que ver con la subida a sourceforge del cliente de Twitter que anunciaba semanas atrás Andreano Lanusse. Habíamos hecho el comentario en la entrada Vamos, vamos… no hay paradas… y finalmente hemos visto con alegría que se ha concretado en esta misma semana y que va a poder ser compartido con la comunidad. Está desarrollado con Delphi 2010.

Esta es la comunicación de Andreando Lanusse de la publicación del código fuente en sourceforge:

RADTweet – Twitter Desktop Client desenvolvindo em Delphi

El proyecto se encuentra alojado en: http://sourceforge.net/projects/radtweet/ donde podéis acceder tanto al exe como a las fuentes.

Dos buenas noticias para nuestra comunidad.

¡Ah! En ambos casos existen una invitación explicita a todos aquellos que quieran aportar comentarios, sugerencias y por supuesto, participar. Así que eso ya queda en vuestras manos.

En fin… voy a volver a mis libros y a mi rato de lectura.  ;-)

¡Qué tengáis una buena semana!

Conéctame a…

noviembre 23, 2009 en Artículos, Delphi, Enlace interesante, Entrada Diario

La cosa va de conectores…

http://neftali-mirror.site11.com/?p=481

Hace tiempo que le comenté a Germán, a través de un de las entradas de su blog, que estábamos deseando que escribiese  este segundo artículo y os prometo que recibí con mucha alegría su mensaje de Twitter, comentándolo.

:-)

No os lo perdáis ya que no tiene desperdicio. Retomad el primer artículo, que es la parte teórica de la serie y plantearos hasta que punto puede abriros algunos caminos, precisamente hacia la modularidad, acercándonos a un sistema basado en la carga dinámica de packages (bpl), que no dejan de ser un tipo de librerías.

Quizás nuestro objetivo solo sea reducir el tamaño de nuestra aplicación. En todo caso, creo que os puede aportar nuevas  ideas en vuestros desarrollos.

Mi enhorabuena, Germán.  ;-)