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 form de acceso al sistema
Hola amigos ...tengo el siguiente problema
tengo un form para acceder al sistema ....
si ejecuto dicho codigo y no me logeo (modalresult distinto a mrok )sea por cerrar el form con el boton de cerrar me da el siguiente error ..... access violation on address xxxx in module xxxx Read of address xxxxx si coloco la siguiente linea dentro del if FrmLogin.ShowModal=mrYes then todo funciona bien... sin embargo quiero llamar antes del form de acceso a dicho form DataAreas porque el el modulo de datos y lo necesito activo para consultar el usuario.... espero que me puedan ayudar .... Gracias .... |
#2
|
||||
|
||||
una preguntita... ¿Quién destruye a frmLogin?
Lo que haces es mas que habitual, solo que se hace muy difícil de leer por la identación que has usado, y sinceramente se me ha complicado mucho entenderte. El error no está en el código que estas mostrando, pero tienes que tener claras un par de premisas, si el formulario de login, va a acceder a datos mediante "DataAreas", es evidente que este debe ser creado previamente a que uses su referencia. Para encontrar el error prueba liberar todo "a mano" para identificar que objeto falla al ser destruído. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
A simple vista, creo que el error te da es por que ¿que pasa si la funcion
FrmLogin.ShowModal devuelve otro valor distinto a mrYes?, es decir el usuario presiona(Supongo)otro boton, por ejemplo el boton cancelar..(OJO Viendo tu codigo eso implica que los otros formularios no se estan creando o instanciando). Creo que en ese caso deberias tener un else para finalizar(supongo) la aplicacion.. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#4
|
|||
|
|||
Hola
Ahora si funciono
sin duda el DataModulo llamado DataAreas debe ser destruido explicitamente porque incluso intente en la penultima linea
y no funciona para nada pero con Destroy si que si Gracias a todos .... P.D: ya lo idente mejor, perdon por el desorden anterior .... |
#5
|
||||
|
||||
Un consejo
En todo caso, lo mas estandar y recomendable para destruir un objeto y liberar memoria en Delphi es usando el metodo Free,este metodo llama internamente al destructor (Destroy) del objeto;ya que si llamamos el destructor directamente, en algunos casos(no siempre) podria ocurrir una Excepcion si nuestro objeto ya fue liberado anteriormente o no fue instanciado(no se reservo memoria),etc,por eso es recomendable destruir un objeto con Free, evitando tales situaciones.
Siguiendo tu codigo seria asi: Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 20-01-2010 a las 20:34:58. |
#6
|
||||
|
||||
Cita:
Recuerda que en tu código frmLogin queda en memoria hasta que se termine el proceso por completo. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
||||
|
||||
Sin embargo, a mi me ha pasado como a Kenobi. Si no libero el data module me lanza la excepción. No se si tendrá que ver con que se cree antes el modulo de datos (para acceso a la cuenta de usuarios) que el formulario principal, que trata el ciclo de mensajes de windows, o se trata de un bug de Delphi. Programo con Delphi 2005, y lo solucioné como dice Kenobi, con un "else" y un DataModule.Free.
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
acceso a sistema | andreita | PHP | 10 | 25-04-2008 15:09:33 |
Corelab ...Formulario de Acceso al sistema ... | Kenobi | Varios | 2 | 20-04-2007 23:47:57 |
Como validar Acceso al sistema | alcides | OOP | 14 | 04-12-2004 03:26:44 |
Acceso a método d 1 form dsd Módulo d Datos | Muten | Varios | 2 | 25-11-2003 13:50:57 |
Error De Sistema | omarys | Varios | 8 | 04-09-2003 19:04:26 |
|