Creador generico de formulario.
Hola club... aqui liandome la cabeza yo solo...
en mis progamas siempre para crear/mostrar los formularios uso las siguientes lineas:
y luego al cerrar los formularios en el evento OnClose le coloco estas otras lineas
Como el código lo tengo que repetir una y otra vez, me puse a darme solo contra el código e hice este procedimiento, basandome en lo que he leido aqui en el club y en otras partes:
Funciona!... pero cuando voy a cerrar el formulario... en algunas ocasiones, me lanza un error "Invalid pointer"... y no se donde está el error exactamente pq es lo único que dice... además que no se deja capturar para revisión... solo sale el error y ya... de ahi en adelante, el programa sigue trabajando bien hasta que lo cierro y vuelve a sacar el error una y otra vez. el error "Invalid pointer" no sale siempre, como puede salir en relación 1:10, tambien puede ser 1:1 o 1:20... se que es un error en el procedimiento que cree, pq al usarlo de la otra manera... ya no salen errores. bueno ya dejo de tirar lora... y si alguien me puede hacer un comentario o aporte... se lo agardeceré. |
Yo creo que esta línea te puede estar dando problemas:
En el segundo parámetro estás haciendo el CAST como TForm de un string.:confused::confused: |
así lo ví en un sitio... creo que fué en aboutdelphi... y funciona... a mi también me pareció extraño... pero funcionó... la cuestión es cuando voy a cerrar dicho formulario... y eso no todas las veces.
|
Yo en todo caso lo hubiera puesto así:
|
Así me genera un error cuando el formulario no ha sido creado aún... la primera línea evalúa si el formulario está creado... cuando no está creado devuelve siempre nil y si lo coloco como parametro del CreateForm me genera un error.
Quité el cast, dejando solo el string como parametro y es más estable que antes... ya el error se presenta muy pocas veces.
|
|
1 Archivos Adjunto(s)
Sigo pensando que esa referencia al nombre del formulario va a dar siempre error.
Yo lo he probado cambiando por component, tal y como te he dicho antes y eliminandole el último else y parece que funciona. Aquí te subo el ejemplo.
|
|
Cita:
Cita:
-- Comparto este artículo que encontré (Understanding the Birth, Life and Death of a Delphi Form), pues me parece relevante al tema... |
La franja horaria es GMT +2. Ahora son las 03:59:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi