Hola:
Efectivamente, como comenta Marto, aunque se pierda la referencia a la variable local, el formulario sigue "vivo". Al haber sido creado pasándole como Owner el formulario actual (Self), se destruirá cuando éste se destruya, o bien en el OnClose de TEditDecretos ponemos lo de Action := caFree, y nos aseguramos de liberarlo.
No veo por donde pueda venir el error, pero sería bueno que la variable EditDecretos : TEditDecretos definida localmente dentro del Button1Click que lanza el formulario, tuviera otro nombre, por ejemplo ED : TEditDecretos. Digo esto porque seguramente ya existe una variable con el nombre EditDecretos en la unit donde se declara este formulario. No sé si de ahí vendrá la confusión, pero pudiera ser que ese formulario, EditDecretos, perteneciera a los AutoCreate forms, y ya existiera, de modo que la asignación Modo := 'A' se realizara sobre el formulario ya creado, y no sobre el que estamos creando en ese momento. Esto es sólo una suposición, no estoy seguro del todo, porque Delphi debería dar prioridad a la variable local, pero podrías probar de hacer ese cambio que te comento.
Saludos
|