Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Thinfinity VirtualUI: Datei speichern/herunterladen (https://www.delphipraxis.net/209512-thinfinity-virtualui-datei-speichern-herunterladen.html)

BlueStarHH 15. Dez 2021 11:59

Thinfinity VirtualUI: Datei speichern/herunterladen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich nutze Thinfinity VirtualUI mit meinem Delphi-Programm. Dieses enthält einen TSaveDialog. Wenn mein Delphi-Programm im Webbrowser läuft, wird nun der TSaveDialog automatisch durch einen Thinfinity-Speichern-Dialog ersetzt. Bestätigt man diesen Dialog, wird die Datei in einem Temp-Ordner auf dem Server gespeichert aber NICHT auf den PC heruntergeladen, auf dem ich den Browser mit meiner Delpi-Applikation offen haben. So macht das keinen Sinn. Hat das schon mal jemand erfolgreich genutzt?

In deren Hilfe steht:

... Thinfinity will do a download...

Hier:
Anhang 54704

Der Thinfinity-Support ist dabei (wie immer bei Problemen) nicht hilfreich, um es freundlich zu formulieren. Erst verstehen die das Problem nicht. Dann sagen die: Es muss klappen, es gibt diese Funktion. Mit meinem Code geht es aber nicht. Dann wird gesagt: Mach das so wie in der Doku, dann klappt es. Hat man das 1:1 wie in der Doku gemacht und es funktioniert trotzdem nicht, wird gesagt: Das ist OK, diese Funktion gibt es nicht. Obwohl es im Handbuch und in der Hilfe anders steht. Damit ist das Thema für deren Support dann durch.

Gausi 15. Dez 2021 13:36

AW: Thinfinity VirtualUI: Datei speichern/herunterladen
 
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
Delphi-Quellcode:
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.

BlueStarHH 15. Dez 2021 13:54

AW: Thinfinity VirtualUI: Datei speichern/herunterladen
 
Zitat:

Zitat von Gausi (Beitrag 1499159)
Zur Lösung deines Problems:
Rufe nach dem SaveDialog.Execute und dem Speichern deiner Datei ein
Delphi-Quellcode:
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.

Danke, ich habs befürchet. Damit muss ich (gekapselten) Code von anderen Herstellern anpassen. Möchte man eigentlich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz