Ja, die VirtualUI-Doku ist da etwas komisch. Ich kann auch nicht nachvollziehen, wie der Download auf den Benutzer-Rechner beim Speichern überhaupt automatisch passieren soll.
Beim OpenDialog ist das klar: Da wird im Browser per JavaScript ein FileDialog für das lokale System angezeigt, und wenn da die Auswahl und der Upload fertig ist, ist der Original-Aufruf von DelphiOpenDialog.Execute fertig. Das geht beim Speichern nicht - denn wenn der Dialog fertig ist, muss Delphi ja erstmal speichern - und davon bekommt VirtualUI (bzw. das JS im Browser) nichts mit ...
Zur Lösung deines Problems:
Rufe nach dem SaveDialog.Execute und dem Speichern deiner Datei ein
VirtualUI.DownloadFile(localfilename, remotefilename, mimetype);
auf. Das löschen der temporären Datei (macht aber iirc VirtualUI auch beim Programmende), kannst du ggf. auch über das Event VirtualUI.OnDownloadEnd regeln. Oder du nutzt das, wenn du während des Speicherns einige Elemente in der
GUI deaktivieren willst/musst - dann kannst du die da wieder aktivieren.
The angels have the phone box.