Hola,
Prueba con algo así:
Código Delphi
[-]
procedure AppRestart;
begin
WinExec(Pchar(ParamStr(0)), SW_NORMAL);
TerminateProcess(GetCurrentProcess, 0);
end;
Por cierto, el procedimiento se basa en uno que puede encontrarse en la librería
Delphi Works.