Hola,
te contaré una forma chabacana de hacerlo que seguramente no sea ni la mejor ni la más correcta pero que funcionaría. La idea es crear un panel por encima de todos tus formularios que no sea visible y estableces un color gris y un valor de transparencia de forma que aunque se vea gris deje ver lo que hay detrás que será tu formulario. Para hacer una transicion suave puedes usar animateWindow de la siguiente forma:
Código Delphi
[-]
AnimateWindow(Self.Handle, 500, AW_HIDE or AW_BLEND);
AnimateWindow(Self.Handle, 500, AW_SLIDE or AW_BLEND);
Además haz que el form pase a enable para que no se pueda activar ni presionar botones.
Esper que te haya servido de algo aunque no sé si es lo que buscas.
Un saludo.