Archivo

Archivo del autor

Versión 1.5 del componente TSelectOnRuntime

viernes, 3 de diciembre de 2010 4 comentarios
Share Button

Hace unos días, a partir de unos comentarios y alguna petición sobre este componente por parte de usuarios, he corregido algun bug en el componente y he añadido algo de código. Actualizado la ayuda y recompilado las demos.

También he comprobado que funciona perfectamente en la nueva versión de Delphi, RAD Studio XE sin cambio alguno.

Corregidos unos problemas relacionados con los Anchors del componente y también cuando los componentes seleccionados tenían alineación alClient.

Para acceder a este componente puedes ir a la página de TSelectOnRuntime o acceder a la librería GLib completa desde aquí.

Categories: Componentes, Delphi Tags: ,

Presentación RAD Studio XE en Barcelona (24 Nov.)

jueves, 25 de noviembre de 2010 Sin comentarios
Share Button

El día 24 fue la presentación en Barcelona del nuevo RAD Studio XE. Siempre interesantes para conocer las novedades de las últimas versiones que las herramientas de Embarcadero. En este caso centrada en Delphi.

En la página de Facebook de Jordi Coll (Thundax Software) hay un par de fotos. No son muy buenas (supongo que Jordi las hizo desde su puesto con un teléfono), pero son muuuucho «mejores» que las que os puedo ofrecer yo.   ;-D

Dan una vista de la sala donde se ha celebrado los últimos años la presentación.

La verdad es que me hubiera gustado que Danysoft hubiera hecho alguna más y las hubieran publicado, o nos las hubiera distribuído para publicarlas en los blogs (petición que ya he hecho para la próxima vez).

La presentación fue a cargo de Luis Alfonso Rey; Interesante como siempre. Los ejemplos y demostraciones que suele mostrar no se ajustan a las típicas cosas que se ven en otras presentaciones. Suele intentar que estas sean originales y sobre temas no triviales; Lo que hace que en la mayoría de los casos tengan bastante interés (en algun otro caso resultan un poco «vagas», pero son lo que menos).  ;-)

En esta caso las demos y gran parte de la presentación ha girado en torno a DataSnap, donde parece que se encuentran algunas mejoras importantes que presenta la nueva versión. Además es un tema que por sus posibilidades «está de moda».



Por otro lado se encuentran las herramientas «auxiliares» que embarcadero ha decidido añadir a la versión XE, que merecen tema a parte y que también han tenido algo de tiempo en esta presentación.

AQTime del cual se ha realizado una pequeña demo para mostrar sus cualidades; Lanzar este profiler sobre una pequeña aplicación de muestra, para determinar los tiempos empleados por los diferentes procedimientos y comparar diferentes versiones de resultados, es insuficiente a todas luces, para mostrar las bondades y excelencias de esta herramienta. Y digo esto con conocimiento de causa, ya que lo he utilizado en su versión 3.5 y 4; Ya lo he comentado aquí antes, pero los calificativos que se me ocurren son «fantástica» e «imprescidible». Todo un acierto haber incluído esta herramienta con la nueva versión.
Actualmente se distribuye la versión 7, así que supongo que debe haber mejorado «algo» desde la versión que tuve el placer de utilizar.

FinalBuilder, que se distribuye también en su versión 7; No he tenido el placer de probarlo, pero por lo que se ha visto en la demo, es una herramienta que está condenada a utilizarse (u otra similar) en medianos/grandes proyectos. Ya no sólo por la comodidad que puede aportar al programador (generador de versiones), sino por la seguridad y robustez que puede aportar a este paso del proceso.

CodeSite. No tengo experiencia con él, pero lo que sí puedo decir es que he tenido que programar soluciones similares en alguno de mis proyectos (medianos/grandes); Así que si funciona mínimamente bien, creo que me evitará el trabajo de hacerlo por mi mismo en un futuro.

Ha habido en este caso también, tiempo para presentar algunas novedades en el IDE.  Me ha parecido «curiosa» e interesante la posibilidad de depurar los hilos de ejecución. También se ha hecho una breve reseña a las mejoras relacionadas con el tratamiento de expresiones regulares. Desconocidas para algunos de nosotros (aquí me incluyo yo, hasta ahora) e «indispensables» para otros, segun la naturaleza de los proyectos con los que estemos trabajando.

El tema de las licencia el algo aparte. De verdad, que al final vamos a tener que hacer un «Master» para poder enterarnos de cómo funcionan. Embarcadero cada vez (o al menos esa impresión me da a mi) complica más este tema. Se ha hablado en la presentación de ToolCloud en relación a esto, y que segun la web de Embarcadero es:

«Embarcadero ToolCloud centrally provisions and manages Embarcadero’s leading database management and application development tools».

Pues eso. Espero que os haya quedado ahora la cosa más clara (o al menos más que a mí).

Reseñas también a las mejoras que Embarcadero está realizando sobre el compilador para que sea más estable y rápido (descargar diapositiva PDF), en los esfuerzos para que en la web exista más material de ayuda y documentación (NOTA) y para corregir errores.
NOTA: En este caso parece que sigue olvidándose del Español como idoma a incluir es este bloque.  ;-(

Por lo demás, pues siempre es agradable cambiar el «ambiente» de la mesa de trabajo por uno diferente y ver a antiguos compañeros de trabajo para compartir experiencias con ellos.

Un saludo.

Categories: Delphi, Eventos, Offtopic Tags: ,

Componente TPanelMiniaturas v.1.1110

lunes, 22 de noviembre de 2010 18 comentarios
Share Button

TPanelMiniaturas es un componente pensado para gestionar una lista o colección de miniaturas, que enlazan con una lista de imágenes. Está pensado para gestionar la colección tanto en diseño como en ejecución.

Permite añadir imágenes de forma individual, en bloque (mediante una carpeta) y arrastrándolas desde el explorador.

Diferentes opciones para personalizar la lista de miniaturas.

Además permite gestionar de forma automática un «pase de diapositivas»; Se configura la velocidad de visualización y automáticamente el componente realiza un pase en «loop» por todas las imágenes almacenadas en la colección.

IMPORTANTE: Esta primera versión del componente no tiene en cuenta el consumo de memoria, algo que sí está previsto para las posteriores versiones, así que no es aconsejable utilizaro con un gran número de imágenes ni que tengan gran tamaño.

La autoría de este componente es compartida. De un ejemplo generado en mi web, Salvador Jover (Delphi básico) tuvo la idea de generar un componente; Creó la estructura básica utilizando colecciones y a partir de ahí, casi sin comerlo ni beberlo, fuimos añadiendo propiedades y características hasta generar esta primera versión.     ;-D

Tanto en mi web, como en la suya iremos publicando más cosas sobre el componente, así que si te interesa puedes estar atento a ambas. Igualmente aceptamos sugerencias, correcciones, modificaciones,… y cualquier otra que sirva para mejorarlo y enriquecerlo. El código está disponible para uso libre. Si realizáis cambios o mejoras os agradeceríamos que nos los comuniquéis para añadirlos al componenete.

Diseño de clases del componente (Click para agrandar).

Puedes descargar tanto los fuentes completos del componente como las demos compiladas, por si te interesa probarlo sin necesidad de instalarlo, en los siguientes enlaces:

<Sources TPanelMiniaturas>

<Demo EXE TPanelMiniaturas>

AÑADIDO(22/11): En el blog de Salvador podéis consultar una lista de Tarea/Bugs/Mejoras/…   tanto de esta primera versión, como las propuestas para las próximas. Algo así como el «estado actual» y el «libro de ruta» de este pequeño proyecto.

Un saludo.

Una quincena más (19/11/2010)

viernes, 19 de noviembre de 2010 2 comentarios
Share Button

Finalmente, el periodo que abarca esta entrada ha sido un poco más largo de lo esperado, pero bueno…

La semana que viene es la presentación en Barcelona, por parte de Danysoft, de la nueva versión de las herramientas de Embarcadero. Aunque ya he visto los videos de otras presentaciones, tengo especiales ganas de asistir a esta. Ya os comentaré qué tal…

Ya hace un par de semanas que Rodrigo ha publicado en su Web en su web la aplicación WMI Delphi Code Creator. Viene a ser un generador de código delphi para acceder a las clases de WMI. La aplicación es imprecisdible para aquellos que trabajéis con WMI. Además la «presentación final» es impecable. Está escriba en Delphi y por ahora sólo ha publicado los binarios.

Hoy leo sobre la utilidad free InnoIDE; Un IDE para generar instalaciones utilizando Inno Setup (el generador de instalaciones de Jordan Russel). Aunqiue no he podido probarlo muy a fondo, parece que hace más fácil el trabajo que ya de por sí, Inno facilita mucho.

Desde hace un par de semanas también, estoy dedicando algunas horas junto con Salvador (Delphi básico) a crear un componente que permita visualizar/gestionar una lista de miniaturas de imágenes.

Los detalles podéis leerlos en esta entrada o en el blog de Salvador, junto con algunas imágenes más. Seguramente en unos días estará lista la primera versión de este componente.

Un saludo.

Categories: Offtopic, Resumen Tags: ,

Acceder GRUB desde Windows

lunes, 8 de noviembre de 2010 2 comentarios
Share Button

Este es el menú de GRUB2 después de instalar Ubuntu 10.

La necesidad es acceder a él (a su configuración desde Windows).

——————————————————————————————

NOTA: En este punto ya se que se puede cambiar la configuración de inicio desde Ubuntu, utilizando aplicaciones o simplemente editando el fichero grub.cfg (en el caso de GRUB 2.0), pero la premisa por gusto obligatoria, es que el acceso se haga desde Windows. Si a alguien le interesa el porqué de esta premisa, se lo puedo volver a explicar
detalladamente, pero creo que no viene al caso ahora mismo.

——————————————————————————————

(continuemos…)

La pimero (y lo más sencillo) que se me pasa por la cabeza, es acceder al fichero de configuración de grub2 (grub.cfg) y modificarlo directamente. Para ello puedo utilizar la aplicación Ext2Fsb, que tal y como explica en la página, es un driver de acceso a ext2, compatible con w2000, Xp y Vista.

Como ya he dicho, la aplicación permite acceder a particiones Linux formateadas en ext2 sin problema, pero…  Mala suerte para mi, porque si no le dices lo contrario, Ubuntu 10 formatea las particiones en ext4.   ;-(

Después de revisar los foros y preguntar a algun que otro entendido, parece que la solución pasa por, crear una nueva partición en Ubuntu, formatearla como ext2 y mover a ella GRUB2, para poder acceder a la configuración de éste desde windows, con la aplicación mencionada anteriormente (Ext2Fsb). Fácil ¿no?  Nada más lejos de la realidad para alguien como yo…  ;-)

Antes de empezar, será necesario tener a mano el LiveCD de Ubuntu para poder arrancar con él, y el LiveCD de Super Grub2 necesarios para arrancar durante los cambios o cuando tengamos algun «accidente» con la configuración (como me ha pasado a mi).

Intentaré explicar los pasos que he ido siguiendo…

PASO 1: Crear la nueva partición. Para ello he utilizado la herramienta grauíta para Windows, Easeus Partition Master. Sencilla, potente y gratuíta. También se podría haber hecho desde Ubuntu, pero yo he decidido hacerlo desde aquí. Para ello basta con redimensionar (quitar espacio) a una de las particiones existentes y crear una nueva.
En mi caso he quitado 15 megas a la partición Windows y he creado una nueva llamada BOOTn, con ext2.

(otra opción más sencilla si cabe, que posteriormente he probado es hacer esto mismo desde Ubuntu con GParted).

PASO2: Una vez creada la partición ya deberíamos poder visualizarla desde Ubuntu.

En mi caso en este punto, al intentar entrar no me permite hacerlo porque detecta que GRUB es incorrecto (que me he cargado el arranque ¡Vamos!).

Posteriormente he comprobado que si la partición la creáis desde Ubuntu (mediante GParted) este error no aparece. en cualquiera de los dos casos se puede seguir adelante con los pasos que hay más abajo, sin problemas.

No hay problema, si arrancamos con el LiveCD de Super Grub2 podemos acceder directamente a la configuración anterior.

Seleccionamos la opción de que busque los ficheros de configuración (grub.cfg) existentes y arrancamos con el anterior.

Ahora ya podemos acceder a ubuntu y ver las particiones creadas, en mi caso con GParted.

> sudo  apt-get install  gparted

O también desde el «Centro de software Ubuntu».

Ahora tengo las particiones:

  • /dev/sda1 en la que tengo XP
  • /dev/sda2 donde está Ubuntu
  • /dev/sda3 de tipo ext2 llamada BOOTn que es la que acabo de crear.

Desde GParted, puedes pulsar click derecho sobre la partición BOOTn y acceder a «Información» para anotar el UUID de la partición.

A partir de aquí realizaremos el proceso desde el Terminal. Aquí podéis ver la lista completa de comandos en la pantalla de Terminal (no son muchos) y a continuación los pongo de forma individual explicando cada uno para qué es, aunque la complicación no es mucha.

Creamos un directorio en /media

>sudo mkdir /media/bootn

Montamos la partición que hemos creado sobre ese directorio. A partir de ahora accederemos a ella por ahí:

> sudo mount   /dev/sda3   /media/bootn

Copiamos el contenido del boot actual (/boot) al nuevo directorio creado (a la partición nueva):

> sudo cp -dpR /boot/* /media/bootn

Movemos el contenido del anterior boot a un directorio de backup –oldboot– (mejor que borrarlo, por si acaso); Si algo fallara con Super Grub 2 podríamos acceder de nuevo al fichero grub.cfg de este directorio oldboot.

> sudo mv /boot /oldboot

Creamos un nuevo directorio de boot.

> sudo mkdir /boot

Modificar el fichero fstab (File System Tables) para añadir la nueva partición de boot.

> sudo gedit /etc/fstab

Añadir la línea siguiente:

# /boot ; Nueva partición ext2  BOOTn
UUID=4b43bb15-46c7-4ce9-8e03-5cbfa195a5cb /boot           ext2    defaults        0

El UUID debe ser el de vuestra partición; Se accede a él desde GParted (como hemos visto antes) o desde Terminal con el comando:    sudo blkid /dev/sda3

Desmontar la partción  /bootn

> sudo umount /media/bootn

Y montarla como /boot

> sudo mount /dev/sda3 /boot

Ahora sólo queda instalar grub en la nueva partición de boot que hemos montado.

>  sudo grub-install –root-directory=/   /dev/sda

Y una vez instalado actualizarlo

>  sudo update-grub

Si todo ha ido bien, la actualización del grub encontrará las opciones correspondientes a los sistemas operativos que tenemos instalados. En mi caso:

  • Found linux image: /boot/vmlinuz-2.6.32-24-generic
  • Found initrd image: /boot/initrd.img-2.6.32-24-generic
  • Found memtest86+ image: /memtest86+.bin
  • Found Windows Fundamentals for Legacy PCs on /dev/sda1

Finalmente para editar grub.cfg, desde windows necesitamos un editor que soporte el formato Unix/Linux (LF). En mi caso he utilizado RJ TextEd, del que ya hablé hace unos días en esta entrada.

Basta con cambiar (en mi caso también) la opción Default  de 0 a 3 para seleccionar el sistema que posteriormente aparecerá como por defecto para arrancar.

Desde Ubuntu también es sencillo, por ejemplo, desde el Terminal con la siguiente línea:

> sudo gedit /boot/grub/grub.cfg

Hasta aquí todo lo necesario. Espero que os sea útil y os evite unas cuantas horitas de pruebas o de revisar por Internet. ;-D

En mi caso las pruebas las he hecho con Ubuntu 10.04 y la versión que hay de Grub es la 2.0.

Enlaces de interés:

Un saludo.

http://www.rj-texted.se/
Categories: Ubuntu Tags: ,

Componente TPanelMiniaturas (En proceso…)

jueves, 4 de noviembre de 2010 4 comentarios
Share Button

A raiz de la última entrada de este blog respecto a crear componentes en un ScrollBox, y el ejemplo que desarrollé para mostrarlo creando un simple visualizador de imágenes y sus minuatura, Salvador (Delphi básico) y yo mismo, nos hemos propuesto crear un componente que permita gestionar estas miniaturas.

La idea inicial, era simplemente recordar y practicar determinados conceptos sobre componentes, pero poco a poco la cosa ha ido tomando forma y el resultado (por ahora en desarrollo todavía) se está tornando bastante interesante.

El componente TPanelMiniaturas está pensado como una colección  (TCollection) de minuaturas (TCollectionItems). Además se complementa con un componente adicional que se encarga de «pintar» las minuaturas en pantalla y que está ligado a cada ítem de la colección. Debe permitir gestionar esas miniaturas en diseño y en ejecución y facilitar al programador métodos para trabajar con ellas.

Podéis ver más imágenes y detalles del diseño del componente en esta entrada de la web de Salvador:  «Panel de miniaturas» y seguir las últimas ideas que se nos van ocurriendo aquí (debate en facebook). Estamos abiertos a cualquier idea y sugerencia, así que si alguien se anima, que «no se corte»…  ;-)

Un saludo.

Categories: Componentes, Delphi Tags: ,

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: