Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Einstellungen für TOpenDialog und TSaveDialog (VCL)
UweK - Fr 05.01.24 11:10
Titel: Einstellungen für TOpenDialog und TSaveDialog (VCL)
Guten Tag,
Gibt es eine Möglichkeit, bei TOpenDialog und TSaveDialog die folgenden Funktionen zu realisieren? Falls nicht, müsste ich mir selbst äußerlich und funktionell gleiche Versionen davon schreiben, die das zusätzlich können. Das macht natürlich Arbeit.
- Für jedes Anzeigen soll die Sprache einstellbar sein. Mein Programm ist zur Laufzeit zwischen deutsch und englisch umschaltbar. TOpenDialog und TSaveDialog sind in meiner deutschen Installation von Delphi XE6 immer deutsch.
- Der Benutzer soll nur ein voreingestelltes Verzeichnis "T***Dialog.InitialDir" und Unterverzeichnisse davon erreichen können, aber soll nicht weiter hoch in die Verzeichnisstruktur gehen können.
Für Tipps bin ich dankbar.
Gruß Uwe
jaenicke - Fr 05.01.24 15:05
Es gibt mittlerweile (seit Delphi 2009) den
TFileOpenDialog, der auch ein Event
OnFolderChanging hat. Dort kannst du mit
CanChange steuern, ob der Wechsel erlaubt sein soll. Mehr dazu findest du hier:
TFileOpenDialog [
https://en.delphipraxis.net/topic/10399-open-dialog]
Moderiert von Th69: Delphi-Tags hinzugefügt
Moderiert von Th69: URL-Titel hinzugefügt
UweK - Do 22.02.24 15:37
Hallo jaenicke,
Vielen Dank. Für das Sperren des Verzeichnisses ist das die Lösung.
Bleibt noch das Problem mit dem Umschalten der Sprache zur Laufzeit. Nach ergiebigem Googeln sieht es für mich so aus, dass da gar kein direkter Weg vorgesehen ist. Diese Notlösung habe ich gefunden, wo alle Komponenten der Reihe nach angeschaut und gezielt verändert werden:
Sprache umstellen (zB auf Englisch) [
https://www.tutorials.de/threads/sprache-umstellen-zb-auf-englisch.308678]
So etwas habe ich jetzt auch probiert. Mit einem meiner eigenen Programme funktioniert das auch:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| MyForm: TForm
...
with MyForm do for I:= 0 to ComponentCount - 1 do if Components[I] is TBitBtn then (Components[I] as TBitBtn).Caption:= 'Test'; |
Probiere ich dasselbe aber mit dem Dialog:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| MyDialog: TFileOpenDialog
...
with MyDialog do for I:= 0 to ComponentCount - 1 do ... |
scheitert die Sache schon daran, dass "ComponentCount = 0" geliefert wird. Was ist hier anders?
Gruß Uwe
Moderiert von Th69: URL-Titel hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!