Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C# OpenFileDialog kastrieren? (https://www.delphipraxis.net/86308-openfiledialog-kastrieren.html)

Phoenix 12. Feb 2007 14:09


OpenFileDialog kastrieren?
 
Jo,

ich will den System.Windows.Forms.OpenFileDialog kastrieren. Genauer: Ich will genau einen Pfad vorgeben, und es darf nur eine Datei aus exakt diesem Pfad ausgewählt werden.

Irgendwie find ich aber keine Eigenschaften, um den Folderwechsel zu verbieten. Gibts da irgendwo schon was, bin ich blind, oder muss ich mir meinen eigenen "OpenFileFromSpecifiedFolderDialog" schreiben?

Jürgen Thomas 12. Feb 2007 14:40

Re: OpenFileDialog kastrieren?
 
Nutze doch die Delphi-Referenz durchsuchenFileDialog-Klasse. Jürgen

PS. Es ist in der Tat oft schwierig, bei den Tausenden Klassen die passende zu finden.

Phoenix 12. Feb 2007 15:52

Re: OpenFileDialog kastrieren?
 
Zitat:

Zitat von Jürgen Thomas
Nutze doch die Delphi-Referenz durchsuchenFileDialog-Klasse. Jürgen
PS. Es ist in der Tat oft schwierig, bei den Tausenden Klassen die passende zu finden.

Erm. Das ist eine abstrakte Klasse - die Taugt nur zum Ableiten.

Und da die Ableitungen OpenFileDialog und SaveFileDialog in der einzigen abstrakten Methode "RunFileDialog" einen Call auf NativeMethods absetzen - was ich aufgrund des ProtectionLevels in einer eigenen Ableitung nicht darf - bringt mir das rein gar nichts :-(

Elvis 12. Feb 2007 16:02

Re: OpenFileDialog kastrieren?
 
Kleiner Tipp: Vergiss es einfach. Die Dateidialoge auch nur böse anzuschauen kann ernsthafte Konsequenzen für die Verwendbarkeit einer .Net App haben.
Wenn deine app zum Bleistift über ein Netzwerk gestartet wird, dann ist OpenFileDialog.OpenFile() die einzige Möglichkeit für dich an eine lokale Datei zu kommen. Genau die gleiche Methode liefert dir einen schreibfähigen Stream beim SaveFileDialog. Du solltest möglichst nie versuchen den Dateinamen eines der beiden Dialoge zu lesen.
Ich kann dir also nur empfehlen hier nicht zu schlau zu werden, da du sonst einige IMO sehr sinnvolle Sicherheitsmechanismen für ein wenig Schnickschnack komplett nutzlos machst.
Deine App würde Fulltrust brauchen.

Phoenix 12. Feb 2007 16:07

Re: OpenFileDialog kastrieren?
 
Der User hat ausschliesslich eine einzelne Datei aus einem vorher vom Admin definierten Verzeichnis auszuwählen (InitialDirectory). Aber da darf er über den Dialog ausbrechen. :shock:

Der OpenFileDialog bietet dem User daher viel zu viel zu viele Rechte - und die will muss ich einschränken.

Jürgen Thomas 12. Feb 2007 17:07

Re: OpenFileDialog kastrieren?
 
Sorry, bei OpenFile-Dialog hatte ich nicht weiter gelesen.

Aber wäre bei Deinen Bedingungen nicht eine ListBox - evtl. in einem kleinen Formular - das einfachste? Jürgen

Phoenix 12. Feb 2007 17:51

Re: OpenFileDialog kastrieren?
 
Naja, so Ansatzweise.

Ich denke ich werde einfach alle Images die in dem Verzeichnis liegen in eine Grid packen (mit Preview) und den User da auswählen lassen. Dann brauch ich mich nicht mit dem Dialog rumärgern ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.

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