PDA

Ver la Versión Completa : Problemas con TOpenDialog


colunga
29-07-2003, 19:02:46
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, 19: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, 19: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, 19: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, 19: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.