Primero, tienes que comprender que la comparación " if FDatosGenerales_local = nil then ... " no es recomendada. En su lugar debes usar: " if assigned(FDatosGenerales_local) then ... "
El hecho de que el formulario no se abra puede ser que este ocurriendo un problema al momento de la creación del mismo ( Procedure OnCreate ). Tienes que revisar este lugar que es el que pueda dar el problema. Intenta comentar las líneas "Try ... finally ... end; " y fíjate si salta una excepción.
Por otro lado, cuando estoy tratando con clases formualario y no estoy trabajando con la variable global y en lugar se ésta con una varible local u de otro aspecto, no uso este típico código, como el que tu tienes:
Código Delphi
[-]Application.CreateForm(TFDatosGenerales,FDatosGenerales_local);
En su lugar usaría este código:
Código Delphi
[-]FDatosGenerales_local := TFDatosGenerales.Create(nil);
Personalmente creo que este estilo de codificación ayuda al entendimiento del código. Ya que hace una diferencia entre los formalarios que estarán visibles por un considerable tiempo y los formularios que sólo serán mostrados durante un corto momento.
Saludos