Solo unas aclaraciones
Sabes la diferencia entre show y showmodal? Con Show se muestra el formulario deseado, pero la ejecucion del form "padre" continua. Con ShowModal, se visualiza el formulario y la ejecucion del form "padre" se para hasta cerrar la ventana. Bien, vista esta aclaracion vamos a ver porque con Show funciona mal y ShowModal bien.
Si te fijas, tienes una variable
local, EditDecretos. Recordemos el ambito de las variables locales: estas SOLO estan "vivas" DENTRO del procedimiento o funcion donde son declaradas. Como hemos visto que con Show el form "padre" sigue la ejecucion de la aplicación.... pues llega a salir del procedimiento, por eso el form creado se destruye, porque se destruye la variable con la que lo creaste. Se ha entendido?
Para crear un formulario no hace falta que declares esa variable. Puedes poner simplemente
Código:
procedure TDecretos.NovoClick(Sender: TObject);
Begin
EditDecretos:=TEditDecretos.Create(self);
with EditDecretos do
begin
Modo:='A';
Show; // o ShowModal, como quieras o prefieras
end;
Grid.SetFocus;
end;
Pero... me sigue quedando la duda si el form creado recibe o no el parametro (que en teoria deberia de recibir)
Bueno, espero te sirva y quede algo mas claro el tema de las variables locales