FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ERROR con formulario showmodal
Hola a todos y les agradecería que me ayudaran con un problemilla que fijo es una tontería pero que me trae locooooo.
Mi problema es que abro un formulario,donde introduzco una nueva provincia, con showmodal desde otro formulario. El formulario "showmodal" se abre bien, pero el problema viene cuando el padre tiene que evaluar si ha devuelto mrok o mrcancel. me sale el típico mensaje de "acces violation", ya he comprobado que los botones devuelven mrok y mrcancel. Dentro de mi locura transitoria he intentado incluso abrir el formulario con show y no con showmodal(evidentemente tb sin mrok ni mrcancel) y me lo hace de PM, pero solo una vez, la segunda me da el mismo "access violation". Les pido ayudo porque ya no se donde meterme. Gracias a tod@s Última edición por molina669 fecha: 07-11-2005 a las 11:17:57. |
#2
|
||||
|
||||
Debes tener en cuenta dónde creas la instancia del formulario que muestras.
Tu problema parece que se debe a que destruyes el formulario y después intentas acceder a sus datos, y por esto te da error. Espero que te sirva Edu |
#3
|
|||
|
|||
Gracias por contestar, lo he comprobado y el error me da en la linea:" if (frmprovincia.showmodal =true) then", luego no intento acceder a sus elementos, sino a ella misma. Tal vez sea algún problema en la configuracion de delphi. Uso delphi5 con ADO, por si os sirve de algo pa ayudarme.
|
#4
|
||||
|
||||
Ya me imaginaba que te daba el error en esta línea, pero el tema está en dónde creas la instancia de frmprovincia. En algún lugar no lejos de ahí y un poco más arriba debería estar la creación, del tipo
Y más abajo la destrucción:
En general, cuando se usa un formulario modal la estructura es la siguiente:
Un saludo Edu |
#5
|
||||
|
||||
En lugar de frmprovincias.Free,
pon FreeAndNil(frmprovincias). La diferencia es que con .Free, el puntero frmprovincias no queda apuntando a nil, sino a la dirección de memoria donde se encontraba la ventana, como ya se ha liberado, estas accediendo a una dirección no válida. Ten cuidado de que la forma no tenga cafree en su evento OnClose, ya que al cerrarse se destruirá, y puedes perder la referencia. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Gracias a los dos me ha servido mucho vuestra ayuda
|
|
|
|