Código Delphi
[-]if not Assigned(UDMDatamodule) then
begin
UDMDatamodule := TUDMDatamodule.Create(self);
end;
Si liberas la memoria de un DataModule, o de cualquier otro Form, en tiempo de ejecución, en vez de Free deberías utilizar FreeAndNil, o adicionalmente al Free, asignarle Nil a dicho Form o DataModule.
Consulta al respecto
este hilo por ejemplo.
ClNaU2