Hola Juliá, gracias por contestar. La variable que pierde su valor en el formulario padre está declarada junto con la declaración de la variable formulario:
Código:
var
formP: Tform;
variable: integer;
......
procedure Button1Click();
begin
//1.- creo el formulario hijo
//2.- Hago hijo ShowModal
//3.- LiberoPadre(variable);
end;
......
En 1.- la variable no ha perdido su valor
En 2.- se muestra el 2 formulario
Cuando cierro el formulario y llega a la línea 3, la variable ha pasado a valer cero y el acceso al array de pantallas no es correcto.
Como ves se trata de una variable global solo al formulario y en ningún momento se cierra, solo se crea otro formulario, se muestra como Modal y al volver de él, la variable ha perdido su valor.
Gracias Juliá