Cita:
Empezado por dalsim
neftali asi le he cambiado pero la ventana se abre y automaticamente se cierra no me dela verla a que se deberia
|
Cita:
Empezado por dec
Pues no parece que sea el comportamiento esperado.
|
Bueno, sí suele ser un comportamiento "normal" aunque no correcto si tenías una cosa como esta:
Código Delphi
[-]
try
Form.ShowModal;
finally
Form.Free;
end;
y ahora has puesto:
Código Delphi
[-]
try
Form.Show;
finally
Form.Free;
end;
Al principio cuando tu ejecución llegaba al
ShowModal, se detenía en ese punto hasta que cerrabas el formulario, y una vez cerrado se ejecutaba la siguiente línea. Ese es el funcionamiento de las ventanas modales. Por eso, no puedes ejecutar código de otras ventanas, porque tu programa se "detiene" (por decirlo así) en esa línea y no sale del código de ese formulario.
Al cambiar a
Show, el funcionamiento cambia; El programa ya no se detiene en esa línea, por eso se pueden ejecutar otros formulartios y por tanto, justo después de ejecutar el
Show, ejecuta el
Free y se cierra el form.
¿La solución? Fácil. Si ejecutas
Show no debes liberar el formulario en la siguiente línea, sino hacerlo, por ejemplo en el
OnClose del formulario.
Código Delphi
[-]
Form.Show;
....
Y en el OnClose de ese formulario pones:
Action := CaFree;
Pruébalo y dinos qué tal...
Espero haberme explicado decentemente...
Un saludo.