![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#3
|
|||
|
|||
Hola, paldave. Te comento que hice la prueba con otro form de la siguiente forma:
if not (resfact is Tresfact) then begin resfact := Tresfact.Create(nil); try resfact.ShowModal; finally resfact.Free; end; De esta forma solo se muestra el form la primera vez. Por eso despues probe de esta forma: resfact := Tresfact.Create(Application); try resfact.ShowModal; finally freeandnil(resfact); end; De esta forma el form se mostror correctamente cerca de 20 veces hasta que la aplicacion se cerro. No me mostro ningun mensaje de error (seguro que no mostro el error porque la instruccion esta dentro de un try), pero igual se cerro, lo que me lleva a pensar en tu comentario de que no es problema de creacion del form sino de algun componente del mismo. Hice la prueba como vos decis pero delphi no reconoce el parametro self, probe con nil y application, y solo se ejecuta bien la primera vez en la segunda aparece el mesaje de error access violation, pero no el mismo que cierra la aplicacion porque me muestra el mesaje pero la aplicacion sigue funcionando, sin mostrar la ventana pero funcionando. A continuacion como quedo: if not assigned(resfact) then resfact := Tresfact.Create(Selft); resfact.ShowModal; resfact.Free; (no se ejecuta porque delphi no reconoce el parametro Self) if not assigned(resfact) then resfact := Tresfact.Create(nil); resfact.ShowModal; resfact.Free; y if not assigned(resfact) then resfact := Tresfact.Create(application); resfact.ShowModal; resfact.Free; (solo se ejecuta bien la primera vez. La segunda aparece el mesaje de error access violation, el form no se muestra pero la aplicacion sigue funcionando. Una consulta: el que yo haya puesto dos instrucciones que no conosco en el evento onclose y ondestroy, podra producir el error? De esta forma el form se mostro correctamente mas de 20 veces: resfact := Tresfact.Create(Application); try resfact.ShowModal; finally freeandnil(resfact); end; en el evento onclose puese esta instruccion: action:= caFree; en el evento ondestroy puse: self:= Nil; Estas dos instruciones las saque de algun post, las puse porque alguien dijo que esto puede solucionar algunos problemas que se pueden producir cuando uno crea los form en forma manual. No creo que afecte para nada el funcionamento pero por las dudas consulto. Volviendo al comentario de que el problema esta en algun componente del form, les consulto esto: El que en el evento onshow del form tenga varias instrucciones, funciones, dos de estas funciones realizan consultas a la base de datos. Podra producir el error? Tampoco creo que sea esto porque en los demas form no tengo este problema. Pero talvez es esto. Por favor, escucho consejos, sugerencias. Muchas gracias. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
mostrar propiedades de Form | Koder | OOP | 3 | 07-09-2007 01:09:11 |
Error muy grave de Google | ArdiIIa | La Taberna | 1 | 24-06-2007 00:08:04 |
Error grave en Delphi 8 | murci | OOP | 0 | 03-03-2004 10:30:20 |
Mostrar un mensaje despues de la visualización de un form | __cadetill | Varios | 13 | 15-12-2003 23:43:14 |
Un grave error por no pensar (ZEOS) | Viet | Conexión con bases de datos | 1 | 11-09-2003 21:49:38 |
![]() |
|