Delphi | DevTroce.com

Post Etiquetado en ‘Delphi’

  1. Convertir de Double a XSDecimal en Delphi

    Agosto 13, 2010. Dejanos el Primer Comentario..

    Hace unos días mostraba como convertir DateTime a XSDateTime, uno de los tipos de datos más ariscos en Delphi cuando debemos usar con SOAP, el Decimal, su equivalente en Delphi Double, para que sean compatibles debemos transformarlo al tipo XSDecimal.

    Para ello no tenemos ninguna propiedad o método director, si no debemos valernos del tipo BCD (Código Binario Decimal), lo cual no es díficil realizarlo por suerte pero si algo engorroso :(

    En el ejemplo veremos un Continúa Leyendo Convertir de Double a XSDecimal en Delphi

  2. Convertir de DateTime a XSDateTime en Delphi

    Agosto 9, 2010. Un Comentario.

    Cuando trabajamos con SOAP y Servicios Web con Delphi, es más que seguro que necesitaremos transmitir por el mismo fechas. Siendo que el tipo más común es TDateTime pero no es compatible con el Servicio por no tener una API XML.

    Podemos valernos de los de la definición XSD para crear a partir del tipo de dato TDateTime uno de tipo TXSDateTime. Continúa Leyendo Convertir de DateTime a XSDateTime en Delphi

  3. Se congela la pantalla con WinForm y los bucles?

    Agosto 6, 2010. Dejanos el Primer Comentario..

    Con las aplicaciones de WinForm, siempre existió un problema al crear bucles complejos que cargan a la máquina cliente. Normalmente si éste bucle lleva mucho tiempo de ejecución y disponemos de poca memoria gráfica el Canvas de Windows se cuelga y da la impresión que la aplicación también lo ha hecho.

    Esto suele dar mala impresión al usuario final sobre nuestras aplicaciones, comienzas a tomarle desconfianza. Eso no es bueno para nosotros porque con el tiempo nos quedaremos sin pan (creo que exageré un poco). Continúa Leyendo Se congela la pantalla con WinForm y los bucles?

  4. Verificar si un fichero existe con Delphi

    Julio 9, 2010. Dejanos el Primer Comentario..

    Verificar la existencia o no de un archivo con Delphi es realmente muy sencilla, ni siquiera se necesitan componentes VCL para ello. No hay mucho que escribir sobre este tema por lo tanto será muy corto pero conciso. Para el fin utilizaremos un pequeña pero útil función.

    1
    2
    3
    4
    5
    6
    7
    8
    
    if FileExists('C:\devtroce.file')then
    begin
    	MessageDlg('Existe el fichero', mtInformation, [mbOK], 0);
    end
    else
    begin
    	MessageDlg('No existe el fichero', mtInformation, [mbOK], 0);
    end;
  5. Leer ficheros .csv con Delphi

    Julio 7, 2010. Dejanos el Primer Comentario..

    Me hubiera gustado que el articulo se titule “Importar datos de ficheros CSV desde Firebird” asi como ya escribi sobre MySQL y SQL Server, pero lamentablemente, este motor no puede hacerlo nativamente, motivo que me llevo a crear la importación desde una aplicación existente y escrita en Delphi.

    Primeramente busque algunos componentes VCL para hacerlo rápidamente ya que no quería perder tiempo con él, pero entre la documentación que pude leer, es más sencillo hacerlo con los objetos nativos del Delphi mismo.

    Así que le agrego un par de modificaciones para subirlo a devtroce y sea más generico que Continúa Leyendo Leer ficheros .csv con Delphi

  6. Comprimir y Descomprimir ficheros ZIP con Delphi

    Junio 28, 2010. Dejanos el Primer Comentario..

    Ya que vengo con los articulos de compresión y descompresión de ficheros .zip, veremos como hacerlo con Delphi. Es tan sencillo que da miedo, necesitaremos descargarnos el siguiente componente ZipForge, el mismo es de paga, aunque tiene una versión free para uso comercial personal. El mismo nos permite comprimir, descomprimir, asignarle un password, encriptarlo en distintos algoritmos, entre otros.

    Yo lo utilizo en Code Gear 2007, ustedes pueden descargarse para la versión que esten usando. Para instalarlo deben tener cerrado su IDE, y el mismo se encargará de instalare en la paleta de componentes, asi los .DPK no tendremos que instalarlos manualmente (que para mi gusto son un fastidio)

    El único problema con esta versión es que siempre nos saldrá Continúa Leyendo Comprimir y Descomprimir ficheros ZIP con Delphi

  7. Utilizar precisión de milisegundos en Delphi

    Abril 15, 2010. Dejanos el Primer Comentario..

    En la entrada anterior vimos como almacenar el tiempo con precisión en MySQL, ésta vez veremos algo semejante, como la función NOW de por sí no devuelve milisegundos, debemos hacer un decodificamiento del mismo para éste efecto, o caso contrario utilizar la API de Windows, el cual es mucho más preciso que la función anterior.

    1
    2
    3
    4
    5
    6
    7
    
    // esta es primer forma de hacerlo
    var
     year, mes, dia, hora, minuto, segundo, milisegundo: Word;
    begin
       DecodeDate(now, year, mes, dia);
       DecodeTime(now, hora, minuto, segundo, milisegundo);
    end;
    1
    2
    3
    4
    5
    6
    7
    
    // Invocacion con la API de Windows, solo extrae el milisegundo, pero pueden obtener mas info del objeto TSystemTime
    var
     st: TSystemTime;
    begin
       Windows.GetSystemTime(st);
       MessageDlg(IntToStr(st.wMilliseconds), mtInformation, [mbOK], 0);
    end
  8. Eliminar ficheros con Delphi

    Abril 5, 2010. Dejanos el Primer Comentario..

    Nuevamente hoy escribiré código que trabaja con ficheros, pero ésta vez desde Delphi. Veremos como podemos eliminar archivos del disco de a uno o varios a la vez (no recursivamente). Será un pequeño procedimiento que recibe un String que representa la ruta del fichero, y luego es convertido a PAnsiChar para el objeto que usamos.

    Utilizar la API de Windows

    Primeramente necesitamos hacer uso de la siguiente clase:

    ShellAPI

    En la sección type declaramos como procedimiento público:

    1
    2
    3
    4
    5
    6
    7
    8
    
    type
      ...
      private
        { Private declarations }
      public
        { Public declarations }
        procedure BorrarFichero(fichero: String);
      end;

    y ahora vemos el desarrollo del procedimiento: Continúa Leyendo Eliminar ficheros con Delphi

  9. Como Manejar Errores en Delphi

    Marzo 9, 2010. Dejanos el Primer Comentario..

    Siempre es fundamental manejar correctamente las excepciones dentro de nuestras aplicaciones, así nos será más fácil tener una consistencia de datos y roturas de la aplicación frente al usuarios final. Aquí en DevTroce ya hemos tocado este tema en distintos lenguajes e incluso en motores de bases de datos y ésta vez le toca el turno a Delphi, es bastante similar que el resto de los lenguajes, pero con algunas particularidades propias.

    En Delphi tenemos disponible para nuestro uso 3 bloques: try, except y finally pero llamativamente sólo podemos utilizar 2 en un manejo de excepciones y en el cual obligatoriamente debe estar incluida la sentencia try. Veamos algunos ejemplos, en el primer caso tenemos el intento de ejecución de algún código y en caso de error es capturado por el bloque except y lo lanza en un mensaje emergente su descripción. Continúa Leyendo Como Manejar Errores en Delphi