Ver Mensaje Individual
  #2  
Antiguo 06-02-2019
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por DarthGomis Ver Mensaje
Si se necesita más información avisad y os la proporciono.
Hola.

De entrada no se ve el lugar donde le asignas a la variable Form2 la instancia de objeto creada con la expresión "TForm2.Create(self)". Por cierto, evita en todo lo posible el uso de With (se convirtió en mala práctica conforme creció la sintaxis de Object Pascal y la disponibilidad de recursos de biblioteca).

Si el formulario modal se muestra, quiere decir que en algún punto de tu código, probablemente en el evento OnCreate o algún otro de TForm2, estás realizando la asignación de la nueva instancia de formulario a la variable Form2. Y, por la misma lógica, es probable que al cierre del formulario tengas indicado que éste se destruya. De tal suerte que la sentencia "nameData := Form2.Edit1.Text;" genera la excepción que nos muestras.

Puede que Form2 siga apuntando al lugar de memoria que tenía la instancia, pero, por la destrucción, Edit1 se ha puesto en Nil (si no mal recuerdo, la liberación nativa de un derivado de TForm pone en blanco los campos componentes published). Eso explicaría porque la excepción AV es una lectura de la dirección de memoria 00000000, dado que la propiedad Text de la clase TEdit se lee mediante un método virtual; y, siempre que se va a realizar una llamada a un método virtual, Delphi necesita determinar la clase del objeto, cuyo identificador (puntero) se guarda en los primeros bytes de cada instancia. Ya que el objeto Edit1 es Nil, dichos bytes vendrían a ser, erróneamente, los primeros de la memoria RAM, los cuales son inaccesibles para las aplicaciones.

Todo lo anterior es una mera hipótesis, a falta de más información. Pero puede llevarnos a la respuesta de lo que está pasando de aquel lado de mi monitor y que sólo tú puedes ver y compartirnos. Así que te toca mover...

Al González.
Responder Con Cita