Umgang mit der TfrShellTreeView-Komponente in FastReport VCL

2025-04-22

Nicht jeder weiß, dass FastReport nicht nur Berichtskomponenten, sondern noch viel weitere Komponenten enthält. Insbesondere gibt es mehrere Komponenten, die Sie wie andere Delphi-Komponenten in Ihren Anwendungen verwenden können. Die Bibliothek solcher Komponenten wird ständig erweitert. In diesem Artikel betrachten wir eine dieser Komponenten, nämlich die TfrShellTreeView. 

Diese Komponente dient zur Anzeige von Elementen des Dateisystems und ist teilweise analog zu Komponenten wie TDirectoryListBox, TDirectoryOutline in Delphi und TShellTreeView in Lazarus. Wenn Sie sehen möchten, wie sie aussieht, ohne die IDE auszuführen, ist dies der „Baum“, den Sie links im Explorer-Fenster sehen.

Programmfenster zur Untersuchung der TfrShellTreeView-Komponente

 

Die Komponente funktioniert auf Windows- und Linux-Betriebssystemen für Delphi und Lazarus problemlos. Die FMX Entwicklungsumgebung wird nicht unterstützt. 

Die TfrShellTreeView-Komponente verwendet viele Betriebssystemfunktionen. Zum Beispiel können Sie unter Windows auf Zip-Archive als Ordner zugreifen und sogar deren Inhalt bearbeiten: Dateien extrahieren und hinzufügen. Unter Linux sind einige der Funktionen der Komponente je nach installierter Linux-Version möglicherweise nicht verfügbar. Wichtiger Hinweis: Die Anzeige der Baumstruktur und die Auswahl von Elementen darin sind unter jedem Betriebssystem verfügbar.

Die Haupteigenschaft von TfrShellTreeView, die die Interaktion mit dem Betriebssystem steuert, ist die OptionsShell.

Die Komponente funktioniert auf Windows- und Linux-Betriebssystemen für Delphi und Lazarus problemlos. Die FMX Entwicklungsumgebung wird nicht unterstützt.   Die TfrShellTreeView-Komponente verwendet viele Betriebssystemfunktionen. Zum Beispiel können Sie unter Windows auf Zip-Archive als Ordner zugreifen und sogar deren Inhalt bearbeiten: Dateien extrahieren und hinzufügen. Unter Linux sind einige der Funktionen der Komponente je nach installierter Linux-Version möglicherweise nicht verfügbar. Wichtiger Hinweis: Die Anzeige der Baumstruktur und die Auswahl von Elementen darin sind unter jedem Betriebssystem verfügbar.  Die Haupteigenschaft von TfrShellTreeView, die die Interaktion mit dem Betriebssystem steuert, ist die OptionsShell.

 

  • ContextMenu – diese Eigenschaft gibt an, ob das Systemkontextmenü für die ausgewählte Datei angezeigt werden soll.
  • ShowFolder – diese Eigenschaft ist für die Anzeige von Ordnern zuständig.
  • ShowHidden – diese Eigenschaft gibt an, ob versteckte Dateien sichtbar sind oder nicht.
  • ShowNonFolders – Diese Eigenschaft ist für die Anzeige von normalen Dateien (nicht von Ordnern) zuständig.
  • TrackShellChanges – Diese Eigenschaft ist dafür zuständig, auf Änderungen im Dateisystem zu reagieren. Wenn ein Ordner in der Komponente geöffnet ist, so wird bei einer Änderung (z. B. beim Kopieren einer Datei dorthin) automatisch auch ein Knoten, der auf diese Datei verweist, zur Komponente hinzugefügt.

TfrShellTreeView unterstützt eine Reihe von Hotkeys, die typisch für einen Standard-Dateidialog oder den Explorer in Windows sind (Ctrl+С, Ctrl+V, Delete usw.).

Die TfrShellTreeView-Komponente unterstützt auch Drag&Drop von Dateisystemelementen sowohl intern als auch von anderen (aber nicht allen) Dateimanagern. Die OptionsBehavior.AllowDragDrop Eigenschaft wird verwendet, um Drag&Drop-Operationen zu erlauben. Drag&Drop wird mit Funktionen des Betriebssystems durchgeführt.

Andere Eigenschaften sind denen der Komponenten TTreeView und TfrTreeView ähnlich. Es ist jedoch zu beachten, dass sie je nach Art der Verwendung in Gruppen eingeteilt sind: OptionsBehavior, OptionsSelection, OptionsShell, OptionsView. So können Sie die benötigten Eigenschaften schneller finden.

Wie bereits erwähnt, ist die Komponente dafür ausgelegt, das Dateisystem Ihres Computers anzuzeigen. Standardmäßig ist die Komponente so konfiguriert, dass sie den Stammordner Ihres Systems anzeigt: „Desktop“ unter Windows oder „/“ unter Linux. Die Fähigkeiten der Komponente sind jedoch nicht darauf beschränkt. 

Fügen Sie die TfrShellTreeView-Komponente ins Formular ein und öffnen Sie den Editor:

Komponenten-Editor

 

Der TfrShellTreeView ähnelt sich im Aussehen den Editoren der TTreeView und TfrTreeView Komponenten, verfügt jedoch über zwei neue Schaltflächen: 

  • New shell Root Item.
  • New shell Root SubItem.

Wie wir auf dem Editor-Bildschirm sehen können, kann die Komponente Folgendes enthalten:

  • Normale Knoten, die nur Texte enthalten, wie z.B. „New simple item 1“. 
  • Knoten mit einem Ort im Dateisystem, wie z.B. „Dieser Computer“, „Lazarus“, „Daten“. Diese Knoten werden als Shell-Knoten bezeichnet. 

Normale und untergeordnete Knoten werden auf die gleiche Weise wie in normalen TreeViews erstellt und bearbeitet. 

Knoten, die einen Verweis auf ein Dateistrukturelement haben, werden mit der Schaltfläche „New shell Root Item“ erstellt. Dadurch wird ein Shell-Knoten der gleichen Ebene wie der aktuelle Knoten erstellt. Wenn Sie auf „New shell Root SubItem“ klicken, wird ein untergeordneter Shell-Knoten in Bezug auf den aktuellen Knoten erstellt.  Bitte beachten Sie, dass ein Shell-Knoten keine untergeordneten Knoten erstellen kann, ein normaler Knoten jedoch schon. 

Beim Bearbeiten von Shell-Knoten muss angegeben werden, an welchen Ordner der Knoten gebunden ist. Die Bindung an einen Ordner kann über TfrRootNodes Konstanten festgelegt werden. Diese Konstanten definieren Orte wie den Desktop, automatisches Laden usw. Wenn Sie die rfCustomPath Konstante festlegen, können Sie im folgenden Verzeichnisbaum einen Pfad zu einem Dateisystemordner hinzufügen. Sie können diesen Pfad auch über das Bearbeitungsfenster unterhalb des Verzeichnisbaums festlegen. Zum Beispiel ist im untenstehenden Bildschirm der Pfad zum Lazarus Ordner auf dem Laufwerk C:\ festgelegt. 

Bearbeiten eines Shell-Knotens

 

Wie bei einer normalen TreeView-Komponente können Sie den regulären Komponentenknoten Symbole zuweisen. Den Shell-Knoten können keine Symbole zugewiesen werden, sie verwenden die im Betriebssystem festgelegten Symbole. Für Knoten wird der tatsächliche Symbolindex verwendet, der in der ImageIndex Eigenschaft hinzugefügt wird. Andere Symbolindexe werden nicht verwendet. Aufgrund der Besonderheiten bei der Verwendung der Komponente sind auch einige andere Eigenschaften nicht implementiert. Beispielsweise gibt es keine Möglichkeit, mehrere Elemente auszuwählen.

Die am häufigsten verwendete Eigenschaft ist natürlich die TfrShellTreeView.SelectedPath. Wenn ein Shell-Knoten ausgewählt ist, enthält diese Eigenschaft den Pfad zu dem Ordner, auf den dieser Knoten verweist. Andernfalls ist diese Eigenschaft gleich der leeren Zeichenkette. 

Darüber hinaus ist der Umgang mit der Komponente durch Programm möglich. Sie können einen normalen (nicht-Shell-) Knoten auf die gleiche Weise hinzufügen wie einen normalen TTreeView. 

 frShellTreeView1.Items.Add(nil,Edit1.Text); 
//einen Stammknoten mit dem Text aus Edit1 hinzufügen


Hinzufügen eines Knotens zum aktuell ausgewählten Knoten:

procedure TForm1.Button5Click(Sender: TObject);
var N:TfrShellTreeViewNode;
begin
 N:=(frShellTreeView1.Selected) as TfrShellTreeViewNode;
if N=nil then Exit;
 frShellTreeView1.Items.AddChild(N,Edit1.Text);
end;


Das Löschen eines Knotens ist ebenso einfach. So wird zum Beispiel der aktuell ausgewählte Knoten gelöscht:

procedure TForm1.Button2Click(Sender: TObject);
var N:TfrShellTreeViewNode;
begin
 N:=(frShellTreeView1.Selected) as TfrShellTreeViewNode;
 if N=nil then exit;
 frShellTreeView1.Items.Delete(N);
end;

Um einen Knoten zu löschen, können Sie jedoch einfach seine Free-Methode aufrufen.

Leider unterstützt die Komponente derzeit nicht die Generierung von Ereignissen, die auftreten, wenn die zugehörigen Dateisystemordner geändert werden. Die übrige Funktionalität der Komponente entspricht weitgehend der Standard-TreeView. 

Zusammenfassend lässt sich sagen, dass FastReport nicht nur ein Tool zum Erstellen von Berichten ist, sondern auch eine Quelle für zusätzliche Komponenten, die in Delphi-Anwendungen verwendet werden können. Die TfrShellTreeView bietet eine bequeme Möglichkeit, Dateisystemelemente anzuzeigen und kann in verschiedenen Projekten nützlich sein. Die Bibliothek der FastReport-Komponenten wird ständig erweitert, was dieses Tool für Entwickler noch attraktiver macht.

VCL FastReport Interactivity Delphi RAD Studio
22. April 2025

Umgang mit XML- und JSON-Formaten in FastScript

In diesem Artikel werden wir genauer untersuchen, wie man mit JSON und XML in FastReport arbeitet, welche Eigenschaften und Methoden darin enthalten sind, und Berichte aus dem Code mit Skripten erstellen.
21. April 2025

Funktionsweise von RFID-Tags in FastReport VCL

In diesem Artikel werden wir die Funktionsweise von RFID-Tags mit dem neuen TfrxDeviceCommand-Objekt in FastReport VCL mit der Veröffentlichung 2025.2 untersuchen.
20. November 2024

Lokalisierung und Ändern von Sprachen in FastReport VCL

FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern.
Fast Reports
  • 800-985-8986 (Englisch, USA)
  • +31 97 01025-8466 (Englisch, EU)
  • +49 30 56837-3928 (Deutsch, DE)
  • +55 19 98147-8148 (Portugiesisch, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.