Hola,
Generalmente no se recurre a su evento "OnClose", sino que se suele actuar de la siguiente forma:
Código Delphi
[-]
var
rutaArchivo: string;
begin
with TSaveDialog.Create(nil) do
begin
try
if Execute then
rutaArchivo := FileName;
finally
Free;
end;
end;
end;
Es decir, se emplea la propiedad "FileName" para conocer la "ruta de destino" elegida por el usuario en el diálogo, luego de que este se ejecutase. Ten en cuenta que el método "Execute" del "TSaveDialog" retorna "true" si el usuario cierra el diálogo sin "cancelarlo" de algún modo.
Si ya tuvieras la instancia del "TSaveDialog" en alguna variable (porque hagas uso del "TSaveLog" en tiempo de diseño, por ejemplo) el código anterior sería similar, sin que tuvieras que instanciar el "TSaveDialog", pero sólo "ejecutarlo" y obtener el "FileName" elegido, llegado el caso.
Código Delphi
[-]
var
rutaArchivo: string;
begin
if SaveDialog1.Execute then
rutaArchivo := SaveDialog.FileName;
end;