Crear componentes en un TScrollBox (runtime)

martes, 26 de octubre de 2010 5 comentarios
Share Button

Se trata de un ejemplo sencillo que puede servir a quien esté comenzando con la creación de componentes en runtime y asignación de eventos. En este caso se trata de un visualizador de imágenes, que crea componentes TImage dentro de un TScrollBox, a modo de miniaturas, para luego visualizar esas imágenes en un control TImage a tamaño mayor.


Se utiliza también una TObjectList para almacenbar los objetos (componentes TImage y TPanel) que se van creando en ejecución para posteriormente poder acceder a ellos. Para crear los componentes se utiliza un código com este:

var
  im:TImage;
  i:Integer;
  pnl:TPanel;
begin
 
  // Para cada imagen
  for i := 0 to (imList.Count - 1) do begin
    // Crear el control imagen
    im := TImage.Create(nil);
    // Asignar propiedades
    im.Parent := ScrollBox1;
    im.Height := ScrollBox1.Height;
    im.Width := im.Height;
    im.Top := 0;
    im.Left := ((im.Width + 15{panel} + 4) * i);
    im.Transparent := true;
    im.Align := alLeft;
    im.Stretch := True;
    im.Proportional := True;
 
    // Cargar
    im.Picture.LoadFromFile(imList[i]);
    // vebto OnClick
    im.OnClick := ClickImage;
    // Añadirla a la lista de objetos
    oList.Add(im);
 
    // Separados
    pnl := TPanel.Create(nil);
    pnl.Parent := ScrollBox1;
    pnl.Left := im.Left + 5;
    pnl.Width := 15;
    pnl.Height := im.Height;
    pnl.Align := alLeft;
    pnl.Color := clBlack;
    // Aadirlo a la lista de objetos
    oList.Add(pnl);
 
  end;

Se puede descargar el código completo del ejemplo desde aquí .
Actualizo el contenido en DropBox.
Este ejemplo ha surgido a partir de este hilo en el ClubDelphi.

Otros ejempos útiles sobre el mismo tema, relacionados con este pueden ser «Crear, mover y redimensionar controles en Runtime (IDE)» o «Crear/destruir comp. en Runtime y moverlas con el ratón«.

Un saludo.

Categories: Delphi, Ejemplos, Fácil Tags: ,

Presentación de Rad Studio XE en Barcelona

jueves, 21 de octubre de 2010 Sin comentarios
Share Button

Si en Madrid fue el 28 de Septiembre, ya hay fecha disponible para Barcelona y será el 24 de Noviembre.

Danysoft organiza un seminario presencial en Barcelona en el que se presentarán las mejoras de la nueva familia de productos de Embarcadero, RAD Studio XE, Delphi XE, C++Builder XE, Delphi Prism XE y RadPHP XE.


Os dejo en enlace hasta su página, donde está detallado el contenido de la presentación, los enlaces para inscribirse y el resto de datos sobre este evento.

Ven a conocer el nuevo RAD Studio XE en Barcelona

Nos vemos allí.  ;-)

Categories: Eventos, Offtopic Tags: , ,

Una semana más… (15/10/2010)

viernes, 15 de octubre de 2010 Sin comentarios
Share Button

Esta semana he descargado la Trial de Rad Studio XE, a ver  si encuentro unos cuantos ratos para revisar esta nueva versión. Espero pronto poder comentar mis impresiones.

Esta semana leo en el Blog de Salvador sobre la presentación en Madrid del nuevo RAD Studio XE por parte de Danysoft. Muy interesante la reflexión, los enlaces y el resumen. Espero que en breve se celebre la de Barcelona.  Cuando haya fecha la publicaré y espero que nos vamos allí.

Como aplicación, esta semana os recomiendo un editor de Texto llamado RJ TextEd. Es gratuíto y escrito en Delphi, tal y como explica su autor Rickard Johansson aquí. A priori, puede parecer un simple editor más, creado utilizando los ya conocidos componentes SynEdit (que hacen casi todo el trabajo en estos casos), pero cuando uno le dedica un poco de tiempo, descubre que va mucho más allá. Una cuidada Interfaz, una gestión de descargas para complementos, diccionarios, skins e idiomas fantástica, distribución muy simple y clara -aun contando que hay infinidad de opciones, estas se encuentran muy bien dstribuídas-. recomendable 100%. Aquí podéis ver algunas pantallas del programa.

Estos días he añadido un sistema de votos a las entradas, utilizando el plug-in de WordPress WP-PostRating; La idea es saber qué entradas interesan más a las personas que revisan el Blog y que leen las entradas. Os animo a que votéis y de esta forma to recibo feedback de lo publicado.

Hace unas semanas (aun sigo con ellos a ratos y espero pronto publicar más relacionado con este tema) publiqué una entrada sobre las librerías de componentes ExtJS, con las que estoy haciendo pruebas para integrarlas como front-end con aplicaciones win32 hechas en Delphi; Desde la misma página se pueden descargar unas muy similares (en Java, en lugar de JavaScript) que son las GWT (Google Web Toolkit). Además estas últimas están disponibles en Google.Code. Podéis ver algunos ejemplos aquí. Hasta aquí, todo como hasta hace unas semanas. Lo interesante es que hace poco Google ha comprado instantiations, empresa que se dedicaba al desarrollo de herramientas para Java. Como resultado Google ahora dispone de GWT Designer; Un diseñador visual como plugin para Eclipse sobre las librerías GWT. Y hay que decir que si las librerías tienen muy buena pinta, el hecho de que dispongan de un buen IDE las convierte en una verdadero «caramelo» para los desarrolladores.

Esta semana leo en los foros del ClubDelphi, que Ramón (rrf) ha sacado la versión 0.9.04 del componente IniLang2 (también disponible en Torry) que mejora sustancialmente el original IniLang de Frdric Sigonneau. Es un componente sencillo para Delphi quepermite traducción de aplicaciones a multiidioma. Sin grandes pretensiones, es sencillo de utilizar y fácil de modificar y extender.

Estos días leo también que es posible descargar un número especial de Blaise Magazine dedicado a Bases de Datos de forma gratuíta. Descargar Número 95/13 (Septiembre 2010). Lectura muy recomendable. Está en inglés, pero los artículos son claros y adjuntan mucho código que ayuda a la comprensión.

Por último he actualizado la aplicación VProcess (visualizador de procesos activos a la versión 1.1) y he subido algunos contenidos más a mi cuenta de DropBox.

Un saludo y buen fin de semana.

Categories: Resumen Tags:

Visualizador de procesos activos; VProcess 1.1

viernes, 15 de octubre de 2010 3 comentarios
Share Button

Herramienta para visualizar los procesos/aplicaciones que hay ejecutándose en el ordenador. Permite visualizar a primera vista la información básica del proceso (icono, título, identificador, threads, descripción, prioridad, path de ejecución,…).
Utilizando el panel de «detalles» (F8) se puede conocer la inforamcon detallada de los procesos ene ejecución. Pulse F8 para visualizarlo y seleccione un el proceso de la lista.

VProcess está diseñado utilizando Borland Delphi 6 y la librería GLibWMI (página / SourceForge).

Se puede descargar el código fuente de la aplicación desde esta página o como parte de la Librería GLibWMI.

También es posible descargar sólo el ejecutable compilado (comprimido con UPX).

<descargar código fuente>

<descargar ejecutable>

Esta y otras aplicaciones estarán disponibles en la sección de aplicaciones de esta página. Allí podrás encontrar todas las descargas completas y futuuras actualizaciones de la aplicaciones.

Historial de versiones

(updated  15/10/2010)  versión 1.1

* Corrección de bugs menores
* Añadido multiidioma; Spanish, Inglés y Francés.
Utilizando GnuGetText.
* Añadir la opción de sustituir al Administrador de tareas por defecto de Windows.
* Cuadro inicial de mensaje.
* Añadir botones de acciones al menú.
* Opción de ejecutar nuevas aplicaciones.
* Opción de terminar un proceso que se está ejecutando….
* Exportación sin necesidad de instalar ningún componente (mxExports).
* Guardar opciones sin necesidad de instalar componentes (RxLib).
* Permite cerrar/Ejecutar nuevos procesos.

Código fuente y binarios subidos a DropBox.

Categories: Aplicación, Programación Tags:

Unir varias imágenes (TImage) en una sóla

jueves, 7 de octubre de 2010 Sin comentarios
Share Button

Hay un ejemplo antiguo en la página en la sección de ejemplos, titulado «Trocear un bitmap en n imágenes a modo de puzle». Hoy ha salido en los foros una pregunta sobre la operación contraria, ¿Cómo unir varios bitmaps (TImage) en una única imagen?

Puede ser algo trivial para los que llevamos un tiempo en esto, pero no tanto para los que empiezan; Reconozco que yo al principio también me liaba con los Canvas, los Rect, los ClientRect y no sabía cual copiar en cada cual.  ;-)

El código para unir cuatro imágenes en una sóla formando un cuadro, es muy sencillo y sería algo así:

var
  ARect:TRect;
  path:string;
begin
 
  // Añadir los 4 canvas a la nueva imagen
  ARect.Left := 0;  ARect.Top := 0; ARect.Right := 48; ARect.Bottom := 48;
  imgDestino.Canvas.CopyRect(ARect, img1.Canvas, img1.ClientRect);
  ARect.Left := 48;  ARect.Top := 0; ARect.Right := 92; ARect.Bottom := 48;
  imgDestino.Canvas.CopyRect(ARect, img2.Canvas, img2.ClientRect);
  ARect.Left := 0;  ARect.Top := 48; ARect.Right := 48; ARect.Bottom := 92;
  imgDestino.Canvas.CopyRect(ARect, img3.Canvas, img3.ClientRect);
  ARect.Left := 48;  ARect.Top := 48; ARect.Right := 92; ARect.Bottom := 92;
  imgDestino.Canvas.CopyRect(ARect, img4.Canvas, img4.ClientRect);
 
  // Path para grabarla a disco
  path := ChangeFileExt(Application.ExeName, '.bmp');
  imgDestino.Picture.SaveToFile(path);
  MessageDlg('Se ha guardado la imagen con el nombre: ' +
             path, mtInformation, [mbOK], 0);

Si en lugar de unirlas formando un cuadro, se quieren unir de otra forma (las 4 en línea, por ejemplo), basta con cambiar las coordenadas de destino.

Si hubiera que cambiar el tamaño final, por ejemplo para reducirlo hasta el de las imágenes originales, se podrían aplicar técnicas de antialiasing al redimensionar.

Descargar ejemplo.

Un saludo.

Categories: Delphi, Ejemplos Tags: ,

Nueva encuesta

martes, 5 de octubre de 2010 Sin comentarios
Share Button

He abierto una nueva encuesta relacionada con algunas herramientas que podemos encontrar en las últimas versiones de Delphi. Herramientas que nos deberían ayudar a desarrollar mejor y más eficientemente nuestras aplicaciones.

Animaros a contestar.

Se admiten sugerencias sobre ítems que puedan faltar.

Un saludo.

Categories: Encuesta Tags:

Póster de pared…

martes, 5 de octubre de 2010 1 comentario
Share Button

Si no os acaba de gustar o no es vuestro estilo, un póster como el de Raquel Welch, que cuelga Andrew Dufresne (Tim Robbins) en la película «Cadena perpetua», o simplemente sois un poco más «frikis» y/o  fans de Delphi, os adjunto este que hoy he visto en «TheRoadToDelphi» y que me ha traído gratos recuerdos.  ;-)

VCL Object Hierarchy

Un saludo.

Categories: Delphi, Humor, OOP Tags:

Contenido web compartido en DropBox (2º intento)

martes, 21 de septiembre de 2010 6 comentarios
Share Button

Hola a todos.

Hace no muchos días comentaba en esta entrada, que ponía a disposición de todos los usuarios el contenido de esta web (descargable) en un lugar público (en este caso en DropBox). A mi me sirve como copia de seguridad y al resto le es más cómodo tener todo el contenido junto, a parte de tenerlo distribuído por las diferentes entradas del Blog.

Hasta aquí todo perfecto.

Los primeros problemas llegaron cuando, para acceder al contenido compartido había que registrarse de forma obligatoria. Personalmente sigo recomendando el servicio, pero encuentro «molesto» tener que registrarse para poder acceder a un contenido público. De todas formas lo achaqué a que era una contrapartida por ofrecer espacio gratuíto.

El problema es que posteriormente los usuarios me informaban de que una vez registrados, para poder acceder debía enviarles una invitación. ;-(
Esto ya me pareció «inusual», por no decir nada práctico e ilógico.

He estado revisando las opciones (que no son muchas) y no he encontrado forma de hacerlo; El poder publicar un LINK para que 20, 30 o 1000 personas tengan acceso a él, sin tener que enviarles una inviación a cada uno, hasta que en los foros de DropBox he encontrado la solución:  «Get Shareable link»

Teniendo la aplicación de DropBox instalada que permite sincronizar los archivos con lo que hay en los servidores web, basta con acceder a esta opción en el menú contextual.

La pregunta es: ¿Porqué no he visto esa opción antes cuando le he dado 200 vueltas a ese menú y a las opciones?

Muy sencillo.

Le versión estable que se descarga desde la web es la v.0.7.100 (link de decarga), que no dispone de esta característica (ya podía yo ir buscando…).

Desde la misma web, se puede descargar la versión beta v.0.8.107 (link de descarga para windows y el resto de links para otros sistemas) que sí dispone de esa característica.

Ahora sí, es posible acceder al contenido «público» compartido desde este link, sin necesidad de registro ni de invitaciones. De todas formas, si alguien desea darse de alta, podéis hacerlo utilizando esta invitación (con lo que aparte de daros de alta, a mi me asignan un poco más de espacio -igual que harán con vosotros si recomendáis a alguien-):

<http://www.dropbox.com/referrals/NTU3NjUzNzU5>

Un saludo.

P.D: Acceso al contenido compartido.

Categories: Aplicación, Offtopic Tags: ,

Una quincena más… (17/09/2010)

viernes, 17 de septiembre de 2010 Sin comentarios
Share Button

Pues como todo lo bueno (y lo malo, no hay que olvidarlo) las vacaciones, desgraciadamente, han llegado a su fin. Estoy de vuelta y el blog de nuevo activo. Tengo algunas cosas a medias, así que espero que en breve (cuando me organize y elimine alguna montaña de papeles de la mesa -de las varias que hay-) pueda publicar alguna de ellas. Alguna actualización pendiente y algun código nuevo. Un saludo a todos después de las -siempre bienvenidas y siempre cortas- vacaciones.

Si hace unas semanas el tema que estaba en boca de todos era el «adios» de Nick Hodges y las repercusiones que esto tuvo en la comunidad, desde que he llegado de vacaciones, los foros, blogs y páginas relacionadas con Delphi/Embarcadero están que «echan humo» con el anuncio de la nueva versión de Delphi; Delphi 2011 RAD Studio XE. Bonito nombre; Veremos si la versión está a la altura de él.

Por un lado pienso, que el hecho de que cada año salgan versiones y actualizaciones de los productos de Embarcedero, indica que la empresa está «viva» y «activa» y que los productos evolucionan y mejoran constantemente; Eso me alegra. Por otro lado, al igual que otros muchos programadores, me asalta la duda de si es necesaria esta «MS-Política» de sacar versiones sí o sí cada año (estén o no justificadas por la propia evolución del producto). Os dejo algunos links:

Página de RAD Studio XE
Vídeos con RAD Studo funcionando
Novedades del producto
Diferentes versiones que se van a comercializar
Descarga de la Trial

Por ahora no lo he revisado, así que no voy a opinar sobre él; Más adelante cuando tenga oportunidad de probarlo comentaré qué me parecen las mejoras.

En otro orden de cosas, os invito a que descarguéis desde la página de MiTeC este programita: MiTeC EXE Explorer.

Es una de aquellas utilidades sencillas, simples y muy utiles, de las que combiene guardar en algun sitio, porque seguro que hay un día en que te acuerdas de ella. El programita en cuestión permite explorar la estructura de un ejecutable y mostrar variada y muy amplia información sobre él. Compatible con PE32, PE32+ (64 bits), NE y VxD.

Entre la información que podéis visualizar se encuentra:

  • DOS, File, Optional and CLR headers
  • CLR Metadata streams
  • Sections
  • Directories
  • Imports
  • Exports
  • Resources
  • ASCII and Unicode Strings
  • .NET Metadata
  • Load Config
  • Debug
  • Thread Local Storage
  • Exceptions
  • Units
  • Forms
  • Packages
  • Classes
  • Flags
  • Version Info
  • Hexadecimal File Content View
    (he subrayado las que me parecen más útiles y comunes a consultar).

Tiene licencia Free tanto para uso comercial como personal y no requiere instalación.

En general, esta página tiene muy buen material, candidata a quedarse en nuestros bookmarks (al menos en el mio).

Este semaña, leo también que Andreas Hausladen ha liberado la versión 2.1 de las DDevExtensions. Para los que no las conozcáis son unas librerías que extienden (aun más) las funcionalidades del IDE de Delphi. La versión 2.1 soporta la nueva versión Delphi 2011 RAD Studio XE. Si queréis leer el PDF con las caraterísticas lo podéis encontrar aquí.

También leo esta semana, que a partir del día 12, ya está disponible la versión 3.40 de las JVCL. Disponibles para descarga desde Sourceforge.

El otro día decidí subir el contenido de la Web a DropBox, por temas de accesibilidad, por  seguridad y como forma de compartir contenidos (además de la sincronización entre mis equipos). Sirva esta reseña también como una forma de «agradecimiento»; Este servicio para mi está siendo de mucha utilidad y lo disfruto de forma gratuíta; Qué menos que compartirlo con vosotros.

Un saludo y buen fin de semana.  ;-)

Categories: Resumen Tags:

Contenido de la Web compartido en DropBox

miércoles, 15 de septiembre de 2010 9 comentarios
Share Button

 

ACTUALIZACIÓN (16/06/2016)

Debido a un alto tráfico generado hacia dropbox, actualmente tengo desactivada/bloqueada la cuenta donde estaban los ficheros.
Estoy intentando solucionarlo y buscando soluciones alternativas, así que espero que es breve estén disponibles todos los ficheros.

Lo siento por el inconveniente.

error_trafico_dropbox

Un saludo.


Desde hoy mismo está compartido todo el contenido de la Web (ficheros, artículos, componentes, ejemplos,…) en DropBox. Desde ahí podéis acceder y descargar también toda la información que tengo compartida en esta Web.

Para los que no lo conozcáis DropBox, decir es un servicio web de almacenamiento gratuíto (también posee opciones comerciales), pero no sólo es eso. También es un medio sencillo y ágil de mantener ficheros sincronizados en varios equipos y de realizar copias de seguridad.

Una vez dado de alta, posees un espacio web donde almacenar ficheros, compartirlos,…  Junto con esto puedes descargar la aplicación de DropBox que te permite de forma transparente sincronizar ficheros entre equipos.

Una vez instalada y configurada (unas sencillas opciones) posees un directorio en tu equipo llamado MyDropBox; Todo lo que copies en este directorio se sincroniza de forma transparente con los servidores de DropBox y se «replica» en el resto de equipos. La idea es sencilla, pero muy simple.

Yo mismo muchas veces estoy trabajando en algo, y cuando me marcho he de realizar copia en un USB para llevarmelo; Incluso a veces me lo envío a mi mismo por correo para tenerlo disponible en otro lugar/equipo y de paso tener una copia de seguridad. Ahora es más sencillo; Lo copias al directorio y listo. Cuando llegas al otro equipo y lo pones en marcha, la aplicación lo sincroniza de forma automática.

A parte del uso personal, permite compartir ficheros, así que he aprovechado para subir los ficheros disponibles en la web aquí.

____________________________________

Directorio publico_neftali

____________________________________

Para probar el servicio basta con darse de alta en la web y descargar la aplicación, desde:

http://www.dropbox.com

o utilizar esta invitación, con lo que me haréis un favor y obtendré algo de espacio extra:

http://www.dropbox.com/referrals/NTU3NjUzNzU5

(Sea de una forma o de otra, os recomiendo que lo probéis)

Un saludo.

Categories: General, Internet, Offtopic Tags: , ,