Ver Mensaje Individual
  #12  
Antiguo 22-07-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Siguiendo con este hilo decidi crearme un pequeño programa para facilitarme la tarea de descargar las imagenes. En mi caso en particular tengo un directorio llamado "recursos" cuya estructura es algo asi:

Código Delphi [-]
_Recursos
    _Iconos --> * .ico
    _Imagenes -->  *.png
        _16
        _24
        _32
        _48
        _64
        _72
        _96
        _128

Entonces si miramos por ejemplo el enlace a un .png de IconArchive tenemos esto:

Donde el 128 que esta en negrita es el tamaño de la imagen. Osea que si cambio ese 128 por 96 tengo el .png de 96 pixeles.

Es decir que con solo tener un enlace ya puedo armarme los restantes

Luego usando los componentes INDY puedo descargarme los archivos a mi directorio Imagenes, cada uno en su carpeta correspondiente

Enlace a repositorio GitLAB

Si bien es algo medio pavo, decidi tomarme su diseño "en serio" y aprovechando que estuve leyendo mucho a Nick Hodges (blog viejo) y tambien en su nuevo blog aplicar algunas buenas practicas de programacion, como por ejemplo el uso de interfaces (hasta ahora no habia diseñado ninguna), tratar de mantener las conexiones entre las distintas entidades lo mas "delgadas" posible (usando interfaces ), intentar no tener ninguna dependencia en la clausula uses de la seccion interface (tratar de poner en lo posible siempre en implementation), el uso de dependency injection (por ejemplo para crear una instancia en ves de llamar a un constructor invoco a un metodo de una factory, pasandole un poco de informacion, en este caso la URL de la que quiero descargar, para que ella me retorne la clase mas adecuada).

Lo he desarrollado en XE7, no use ninguna biblioteca/componentes de terceros. Supongo que con muy pocas modificaciones deberia servir para versiones de Delphi anteriores a XE. Es una aplicacion VCL pero las unidades de codigo que realizan el trabajo deberian funcionar perfectamente con firemonkey, lo unico que habria que hacer entero es el form principal (no se dejen intimar por mi form vcl con un combo box y un boton de download )

En fin, no creo que sea perfecto pero creo que es bastante mas limpio de lo que suelo programar y estoy bastante contento . Tambien quiza le sirva a algun compañero para aprender algo. Sepan tambien que las criticas o algo que quieran señalar son bienvenidas. Por otro lado pueden usarlo como quieran, modificarlo, extenderlo, etc. Clonen el repositorio (fork) y manos a la obra

Saludos!
Responder Con Cita