Hola...
Si vas a crear un objeto (
TForm en tu caso) y luego lo vas a liberar en el mismo bloque puedes hacer la llamada como
Form1 := TForm1.Create(nil)...
Otra forma de conseguir lo que necesitas es:
Código Delphi
[-]
with TForm1.Create(nil) do
try
ShowModal
finally
Free
end
El error que obienes es por que tal vez
Self ya no esté apuntando a un objeto válido en memoria.
Saludos...