Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con TOpenDialog (https://www.clubdelphi.com/foros/showthread.php?t=2570)

colunga 29-07-2003 18:02:46

Problemas con TOpenDialog
 
Tengo un programa que utiliza el openDialog o el SaveDialog. Todo muy bien, pero despues al terminar el programa me da un error de acceso a memoria. Ya comprobé y solo me da el error cuando abro o salvo un fichero. Os ha pasado a alguno?
GRacias.

jhonny 29-07-2003 18:35:30

Bueno para poderte responder eso...necesitamos un poco mas de detalle...Por ejemplo:

1. Poner el codigo que usas, a la hora de salvar o de abrir.

2. Que tienes en el OnClose, Ondestroy, o algo que nos diga mas sobre tu caso, pues a todos nos a sucedido un error de acceso a memoria.

Y casi siempre es un error de ponerle mucho cuidado.

colunga 29-07-2003 18:42:51

Pues mi código es de lo mas sencillo...
Tengo un botón en el formulario donde abro el opendialog:
if miOpenDialog.execute then
begin
//hago cosas con el fichero
end
Escojo el fichero que quiero y lo visualizo. Pero probé a aquitar lo que tengo entre el begin y el end y me casca. El problema es al hacer el execute. De mano no me rompe, solo en el momento en que salgo de la aplicación con Application.Terminate o Halt.
Voy a probar a hacer un mini-programa solo con el execute. Ya os contaré.
Gracias.

delphi.com.ar 29-07-2003 18:47:13

Primero te recomiendo solo terminar con Halt, cuando tu aplicación termina anormalmente, y segundo te recomiendo que comentes el código hago cosas con el fichero, para ver si el error es verdaderamente de los common dialogs.

Saludos!

colunga 29-07-2003 18:55:22

Puse entre comentarios el "Hago cosas con el fichero" y me sigue dando problemas, por eso "supongo" que ese no sea el problema.
Y como me esperaba, hice un programa a parte, solo con el execute y funciona....

if sdBuscaFichero.Execute = true then
begin
try
GrabarFichero(sdBuscaFichero.Files[0]);
except
MessageDlg('No se ha podido guardar el fichero con la lista de señales exportadas. Revise el nombre del fichero seleccionado',mtError,[mbOk],0);
end;
end;//if odBuscaFichero.Execute then

Este es el código orginal. Lo sustituyo solo por esto:

GrabarFichero('n:\endesa\sigma_cltlc\quepasa.txt');

y funciona.... este código es con el SaveDialog, pero me pasa lo mismo, en el momento que hago el execute me casca el programa al terminarlo.
Gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 02:11:23.

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