1 0 Tag Archives: Delphi
post icon

Como solucionar error al Abrir Delphi

Un error muy “peculiar” por asi decirlo fue uno que me sucedio al momento de abrir mis entornos de desarrollo tanto del CodeGear Rad Studio 2009 y el Delphi XE. Los errores que me aparecian dejaban inutilizable la aplicacion y los mismos son:

– displayNotification: Memoria insuficiente
– displayNotification: no hay suficiente espacio de pila
– Stark overflow – save your work and restart CodeGear Delphi for Microsoft Windows

La solucion para este dolor de cabeza es muy sencilla basta con agregar (Continuar Leyendo sobre Como solucionar error al Abrir Delphi)

post icon

Instalar TortoiseSVN en Delphi 5/7/2007/2010

Hace meses atrás veíamos como instalar los plugins clientes de subversion en los entornos de desarrollo Visual Studio y Eclipse, NetBeans no lo vimos ya que viene preinstalado. Nos ha faltado ver como instalarlo en el entorno de Delphi.

En la página oficial del plugin dice que ha sido testeado sobre Embarcadero 2010, pero personalmente lo he probado satisfactoriamente sobre Borland 5 y 7, Code Gear 2007 y la versión de Embarcadero 2010. (Continuar Leyendo sobre Instalar TortoiseSVN en Delphi 5/7/2007/2010)

post icon

Convertir de Double a XSDecimal en Delphi

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 (Continuar Leyendo sobre Convertir de Double a XSDecimal en Delphi)

post icon

Convertir de DateTime a XSDateTime en Delphi

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. (Continuar Leyendo sobre Convertir de DateTime a XSDateTime en Delphi)

post icon

Se congela la pantalla con WinForm y los bucles?

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). (Continuar Leyendo sobre Se congela la pantalla con WinForm y los bucles?)

post icon

Verificar si un fichero existe con Delphi

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;
post icon

Leer ficheros .csv con Delphi

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 (Continuar Leyendo sobre Leer ficheros .csv con Delphi)

post icon

Comprimir y Descomprimir ficheros ZIP con Delphi

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á (Continuar Leyendo sobre Comprimir y Descomprimir ficheros ZIP con Delphi)

post icon

Utilizar precisión de milisegundos en Delphi

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
15 abril 2010
post icon

Eliminar ficheros con Delphi

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: (Continuar Leyendo sobre Eliminar ficheros con Delphi)

Página 1 de 212