Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas al usuar FilenameEdit (https://www.clubdelphi.com/foros/showthread.php?t=46781)

Ledian_Fdez 08-08-2007 15:31:40

Problemas al usuar FilenameEdit
 
Hola amigos de este foro:
Estoy desarrollando mi proyecto en Delphi7, el problema surge al programar el modulo de la Restaura, pues necesito un control que me de la posibilidad de buscar el archivo a restaurar, uso un control de las RX que se llama FilenameEdit y me da el siguiente error:

Cita:

Project Cheques.exe raised exception class EAccessViolation with message ‘Access violation at address 00000000, Read of address 00000000’.Process stopped. Use Step or Run to continue.
La verdad que no se que hacer, pues quite el control y intente hacerlo con el control OpenDialog y el error persiste. ¿Alguien podría ayudarme?

Mis amigos me han comentado que ese error lo ha generado el control FilenameEdit, pero la verdad es que no se como solucionarlo.


En espera de su ayuda :confused:
Un servidor
De antemano muchas gracias.

dec 08-08-2007 15:36:43

Hola,

Y cómo usas el componente en cuestión... ¿lo situas en el formulario? Tal vez lo usas en tiempo de ejecución, pero, tratas de hacerlo antes de haber creado el componente... las violaciones de acceso, entre otras cosas, van por ahí: se trata de hacer uso de un objeto/componente no creado o previamente destruido... habría que ver... :)

ArdiIIa 08-08-2007 15:38:26

La verdad es que yo uso ese componente y nunca he tienido problema alguno.

Se me ocurre que tal vez sea que tu asumes que el usuario a seleccionado un archivo y hacer el proceso (el que sea) y a lo mejor el usuario no ha seleccionado nada....
Tal vez antes de hacer nada, debería verificar que efectivamente se ha seleccionado algo..

Código Delphi [-]
if FilenameEdit1.FileName <> '' then

dec 08-08-2007 15:44:50

Hola,

Cita:

Empezado por ArdiIIa
Tal vez antes de hacer nada, debería verificar que efectivamente se ha seleccionado algo..

O, directamente:

Código Delphi [-]
if FileExists(FilenameEdit1.FileName) then
  {...}

Ledian_Fdez 08-08-2007 15:47:27

Rx
 
dec, si situo el componente en el formulario. Pues el esta creadoy no destruido, eso es lo curioso.

ArdiIIa, pues da el error aun habiendo seleccionado un archivo cualquiera.

salu2
Ledian

ArdiIIa 08-08-2007 15:49:07

Cita:

Empezado por dec (Mensaje 221594)
Hola,



O, directamente:

Código Delphi [-]
if FileExists(FilenameEdit1.FileName) then
  {...}


jEJE.... El que un fichero exista.. no quiere decir que el usuario lo haya seleccionado... :D

ArdiIIa 08-08-2007 15:50:51

Cita:

Empezado por dec (Mensaje 221594)
Hola,
[/delphi]

Venga.... ya queda poco.... estás hoy desbocao.... :D:D:D ánimo....

ArdiIIa 08-08-2007 15:52:31

Cita:

Empezado por Ledian_Fdez (Mensaje 221597)
dec, si situo el componente en el formulario. Pues el esta creadoy no destruido, eso es lo curioso.

ArdiIIa, pues da el error aun habiendo seleccionado un archivo cualquiera.

salu2
Ledian

Bueno, era mucho asumir....
¿Por qué no pones un poco de código para que veamos exactmente donde te salta la excepción ?

O acaso la execpción de la da el componente sin hacer nada de nada... ??

dec 08-08-2007 15:52:33

Hola,

ArdiIIa, he recuperado tu anterior mensaje, porque, oyes, puedes llevar razón, además de que yo no he usado nunca el componente en cuestión y quién sabe...

Respecto del problema del compañero... tal vez el error no esté en el componente de marras, sino en otro lugar, ¿no?... quizás deberías correr el programa "paso a paso" en ese punto...

Cita:

Empezado por ArdiIIa
Venga.... ya queda poco.... estás hoy desbocao.... ánimo....

Cof, cof, cof, cof... :D :D :D

ArdiIIa 08-08-2007 15:54:35

[quote=dec]Hola,

ArdiIIa, he recuperado tu anterior mensaje

[quote]

Oyes... Que es eso de recuperar mensajes borrados sin mi permiso...:D:D:D

Otro pa mi cuenta ??

Ledian_Fdez 08-08-2007 16:04:24

Ok
 
Mil de grasias amigos. Pues me rendi, ya no uso ese control. Pues me e ido por la via de usar un DirectoryEdit y le e hecho unos arreglos a mi codigo. ahora me queda asi y no da error alguno.

Código Delphi [-]
procedure TSalvaForm.BitBtn2Click(Sender: TObject);
var
 CaminoBD : string;
...
CaminoBD := DirectoryEdit2.Text + '\BDCheques.zip';
  if not(FileExists(CaminoBD)) then
    begin
     Application.MessageBox('No se encuantra el Archivo de restaura, por favor intetelo de nuevo ', 'Cheques', MB_OK or MB_ICONERROR);
     Abort;
    end
...

end;

El unico inconveniente es que los usuarios no ven el archivo de restaura, solo que seleccionan el posible camino. Que de la otra forma podian localizar el archivo ademas de que se lo filtraba por el nombre y extencion del archivo. De veras que es una lastima que no sepa donde esta el error.
pero de todas formas muchas grasias a todos.

Salu2
Ledian

ArdiIIa 08-08-2007 16:10:26

Veo en este código, que utilizas primeramente utilizas un mensaje para dar el aviso al usuario y luego lanzas un Abort (Raises a silent exception.)

No sería mejor un simple exit; y salir sin mas.

Ledian_Fdez 08-08-2007 16:24:27

ok
 
Tienes razon.
Con el Exit, se sale del procedure actual.

mil gracias. Es válida su aclaracion.

Salu2
Ledian


La franja horaria es GMT +2. Ahora son las 05:20:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi