![]() |
Error en OpenDialog
Hola Amigos.
Aqui se habre un OpenDialog y si seleciono un file y le doy open todo marcha como debe ser.Pero si decido cancelar entonces sale un error. Como se puede evita que si decido cancelar no me de un error.? Que regrese normal al form sin una ventana de error. Un Saludo. |
Hola amigo [JoseFco], pues no le veo ningún problema a ese code, nos puedes mostrar que error es el que te sale?
Salud OS |
Cita:
Un Saludo. |
antes de abrir el archivo agrega esto:
|
Cita:
No veo donde intercalar esa linea eduarcol. Un Saludo. |
debes agregar sysutils al uses
|
Caso resuelto maestro..:)
|
Disculpen, pero aunque el FileExists evita el problema, lo que sucede aquí es que se está mandando abrir el archivo aun cuando el usuario haya cancelado la operación. Lo lógico sería:
De esta manera evitamos preguntar por la existencia de un archivo que de antemano sabemos que no existe cuando el usuario cancela el diálogo. // Saludos |
Cita:
Lo tengo asi exactamente como lo puso eduarcol y aun cuando seleciono el file.Si decido en vez de "Open" poner "Cancel" el file no entra al buffer ni me pone en el edit que tengo como "Load File" nada. El error que tenia anteriormente desaparecio.No me sale mas la ventana. Me gustaria entender mejor lo que me explicas ya que me perdi en los puntitos esos. Un Saludo. |
Cita:
Al hacer un:
Garantizamos de que en el TEdit quede la ruta del archivo. Mientras que si se hace:
Dejamos la posibilidad de que en el TEdit quede un valor inconsistente ante una operación Cancel ya que se está leyendo el valor independientemente de si se validó o se canceló. La forma correcta es como señala roman: todo el código debe ir en la parte then:
¿Se vé la diferencia? Espero que se me entienda. Si no lo vuelvo explicar. Saludos, |
Cita:
Salud OS |
Ya lo explicaron muy bien Delphius y egostar. La solución del FileExists sí resuelve el problema, pero es como tapar el pozo después del niño ahogado :D Mejor evitar que se ahogue el niño.
De todas formas, por lo general conviene poner la opción ofFileMustExists al diálogo para evitar que el usuario escriba cualquier cosa en el diálogo y oprima aceptar. // Saludos |
Este es mi codigo original:
Si lo corro asi y al final decido no bajar el file me da el error.Entiendo lo que dice roman pero en este procedimiento hago varias cosas y no entiendo a donde mover esa parte del codigo. Un Saludo. |
Cita:
al momento solo tenia esta información:
y como lo dijo Eliseo eso esta bien, lo unico que se me ocurrio es que en algun momento el nombre del archivo cambiaba antes de abrirlo por eso propuse que lo buscara. Ademas no le veo lo malo, es solo comprobar si existe o cambio ;) |
A ver amigo [JoseFco], seguro que esto compila??????
Salud OS |
Yo también me pregunto si compila...
Lo que está marcado con rojo es el problema. Saludos, |
Asi esta y no solo copila, trabaja bien:
Asi esta y en mi delphis no me pide mas end alguno. Un Saludo. PD: existen algunas declaraciones que estan globales puede que por eso no te copile a ti. |
Aqui va el relajo completo:
Lo que decia son las declaraciones globales las que no los deja copilar. Un Saludo. |
Amigo José Francisco, yo te propongo, antes que nada, que revises con cuidado las indentaciones de tu código. Tal como las tienes lo hace casi ilegible. Por ejemplo, en el procedimiento que nos ocupa hay un bloque begin..end con cero indentación cuando debería estarlo. Hay ciclos for al que le siguen varias líneas indentadas pero no están encerradas en un bloque begin..end. Lo mismo con las líneas que siguen al if del OpenDialog.
Tal como está no esposible discernir si esas líneas tenías la intención de pertenecer a un mismo bloque o no y dificulta el anaálisis del código. // Saludos |
Cita:
Me falta mucho que aprender de ustedes. Un Saludo. |
| La franja horaria es GMT +2. Ahora son las 14:05:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi