Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiTech Partner

Benutzerdefinierte Datei-Dialoge erstellen: ShellBrowser Delphi Komponenten

shellbrowser beitrage banner en 3

Zweifellos bieten die VCL Datei Dialoge eine Vielzahl von Konfigurationsmöglichkeiten, die die meisten Standardanwendungsfälle abdecken. Aber manchmal reicht das vielleicht nicht aus und Sie möchten einen speziellen benutzerdefinierten Dialog mit einem anderen Layout, zusätzlichen Steuerelementen (z. B. für Import/Export-Dialoge) oder einem anderen Aussehen erstellen.

Ein Neuaufbau des Dialogs von Grund auf, einschließlich aller dateisystembezogenen Komponenten, wird jedoch in den meisten Fällen keine praktikable Alternative sein. An dieser Stelle können die ShellBrowser Komponenten die Lücke recht komfortabel füllen: Die gesamte Win32-Shell-bezogene Funktionalität ist in einfach zu bedienende Komponenten verpackt, so dass Sie sich auf Ihren speziellen Anwendungsfall konzentrieren können.

Sie können eine Testversion der ShellBrowser Components über den GetIt Package Manager von Embarcadero oder über den Link am Ende dieses Artikels beziehen.

Nach der Installation finden Sie die ShellBrowser-Komponenten im Bereich „JAM Software“ der Komponentenpalette.

1 toolbox

Der Windows-Explorer-Stil

Der schnellste Weg ist die Verwendung einer „TJamExplorerBrowser“ Komponente als Hauptbaustein des Dialogs. Ähnlich wie die FileDialog-Komponenten der VCL ist ExplorerBrowser um ein Windows COM-Objekt herum aufgebaut und stellt einen konfigurierbaren Dateisystem-Browser dar, der die meisten Teile mit dem Windows Datei-Explorer teilt.

Mit der Eigenschaft „VisiblePanes“ können Sie konfigurieren, welche Teile des Steuerelements Sie anzeigen möchten (die Ordneransicht auf der rechten Seite kann nicht ausgeblendet werden).

2 visiblepanes

Weitere Optionen zur Entwurfszeit für das Steuerelement sind die Einstellung des Pfades oder „Special Folder“ – eine Sammlung von benannten Speicherorten, einschließlich Dateisystemordnern (z. B. SF_DOWNLOADS) und virtuellen Ordnern (SF_DRIVES), sowie verschiedene Filter- und Ansichtseinstellungen.

Um den Dialog zu vervollständigen, fügen wir zwei weitere typische Dateidialog-Komponenten hinzu, die „TJamOpenSaveComboBox“ für den zu öffnenden oder zu speichernden Dateinamen und die „TJamFilterCombo“ für die Angabe von Dateierweiterungsfiltern, die angewendet werden können.

Steuerelemente synchronisiert halten

Es ist nicht notwendig, zusätzlichen Code zu schreiben, um die Komponenten zu synchronisieren! Dies kann mit einem „TJamShellLink“ durchgeführt werden. Sie können einfach eine Instanz aus der Komponentenpalette fallen lassen und sie als „ShellLink“-Eigenschaft der ShellBrowser-Steuerelemente zuweisen, die synchronisiert werden sollen. Lassen Sie es mich in diesem kleinen Beispiel zeigen: Alle ShellBrowser Controls auf dem Formular verwenden den gleichen ShellLink.

TJamShellLink synchronisiert ausgewählte Pfade, Dateien und Filter zwischen den angeschlossenen Controls. Der ShellLink kann auch verwendet werden, um den Navigationszugriff auf einen erlaubten Bereich von Ordnern zu beschränken.

Im Beispiel unten wird der Filter, der in der TJamFilterCombo gesetzt ist, auf den ExplorerBrowser angewendet, der Text der „TJamOpenSaveComboBox“ auf den Dateinamen gesetzt, der im ExplorerBrowser ausgewählt ist und zu dem Pfad navigiert, den der Benutzer in der TJamOpenSaveComboBox im ExplorerBrowser eingibt.

3 shelllink

Die Verwendung des ExplorerBrowser in diesem Beispiel als Hauptkomponente des Dateisystems hat den Vorteil, dass er – da er ein Windows-Steuerelement ist – genau wie der Windows Explorer aussieht und sich verhält. Der Nachteil ist, dass nicht auf alle Details des Aussehens oder Verhaltens zugegriffen werden kann oder diese verändert werden können. Es gibt z.B. keine Möglichkeit, die sichtbaren Wurzelknoten des Navigationsbaums zu filtern; ExplorerBrowser unterstützt auch keine VCL Styles oder eine andere Form von Dark Theme.

Noch mehr Kontrolle: TJamShellTree und TJamShellList

Als alternativer Ansatz kann die ExplorerBrowser-Komponente durch verschiedene andere ShellBrowser-Steuerelemente ersetzt werden, wie z. B. TJamShellList, TJamShellTree und TJamShellBreadCrumbBar. Diese basieren nicht auf einem Windows COM-Objekt, sondern replizieren dessen Aussehen und Verhalten so genau wie möglich, während sie von Standard-VCL-Steuerelementen abgeleitet sind und deren Anpassungsfähigkeit erben. TJamShellLink wird wie zuvor beschrieben unterstützt und diese Steuerelemente unterstützen die VCL-Stile vollständig.

4 darkmode

Als Fazit bleibt also festzuhalten, dass es von Ihren genauen Anforderungen abhängt, ob Sie den ExplorerBrowser verwenden oder das VCL-basierte Control-Set einsetzen.

Wofür auch immer Sie sich entscheiden, ein einfacher Dateidialog ist mit wenigen Klicks im Handumdrehen erstellt.

Holen Sie sich kompilierte Beispiel-Applikationen dieser und anderer ShellBrowser-Komponenten oder probieren Sie die Testversion aus.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES