Benutzer-Werkzeuge

Webseiten-Werkzeuge


k6:k6.9:k6.9.5:start

6.9.5 FileChooser

Mit dem Steuerelement FileChooser (gb.form) kann der Benutzer eine Datei oder eine Liste von Dateien im gleichen Verzeichnis auswählen.

Abbildung 6.9.5.1: Ausgewählte Dateien in einem FileChooser

Das Steuerelement FileChooser kann erzeugt werden:

Dim hFileChooser As FileChooser
hFileChooser = New FileChooser ( Parent As Container ) As "EventName" 

Hinweis

Achtung! Die Eigenschaft ShowDetailed ist bei Gambas-Versionen > 3.18.4 nicht mehr verfügbar. Um eine Anzeige im Datailed-Modus zu erhalten, ist für alle Versionen > 3.18.4 die eingebettete Klasse FileView zu verwenden (siehe Kapitel 6.9.4). Beispiel: FileChooser1.FileView = FileView.Detailed

6.9.5.1 Eigenschaften

Die Klasse FileChooser verfügt über folgende Eigenschaften:

EigenschaftDatentypBeschreibung
BookmarksCollection[ ]Setzt oder gibt die Liste der privaten Lesezeichen zurück. Jede Bookmark-Collection muss einen Key „Path“ enthalten, der auf den Pfad des Lesezeichens zeigt. Optionale Keys sind „Name“ und „Icon“. Andere Key-Namen werden ignoriert.
DirStringGibt das aktuelle Verzeichnis zurück oder setzt das Verzeichnis
DirViewDirViewGibt das Steuerelement DirView zurück, das intern vom FileChooser genutzt wird.
ExtensionContainerGibt den internen Container zurück, der zum Einfügen von Erweiterungen innerhalb des FileChooser-Controls verwendet werden kann.
FileChooserFileChooserGibt das Steuerelement FileChooser zurück, das intern vom FileChooser genutzt wird.
FilterStringGibt die vom Steuer-Element verwendeten Filter zurück oder setzt sie, um nur bestimmte Dateitypen anzuzeigen. Die Filter werden in einer separaten ComboBox angezeigt. Automatisch wird der Filter-Eintrag 'Alle Dateien (*)' eingefügt. Die Filter-Eigenschaft erhält ein String-Array mit der folgenden Struktur: Der erste Filter. Die erste Filterbeschreibung. Der zweite Filter. Die zweite Filterbeschreibung. Und so weiter… . Ein Filterstring ist eine Liste von Dateimustern mit Platzhaltern, die durch ein Semikolon getrennt sind. Eine Filterbeschreibung kann ein beliebiger String sein. Der Filterstring wird automatisch an die Filterbeschreibung angehängt.
FilterIndexIntegerLiefert den Index oder setzt den Index des Filters, der vom FileChooser-Steuerelement verwendet wird. Der Index -1 wird für die Anzeige aller Dateien verwendet.
MultiBooleanGibt den Wahrheitswert zurück oder setzt ihn, ob der Benutzer nur eine oder mehrere Dateien auswählen kann.
RootStringGibt das Root-Verzeichnis zurück oder setzt das Root-Verzeichnis. Wenn diese Eigenschaft nicht gesetzt wird, so wird automatisch das Home-Verzeichnis zum Root-Verzeichnis.
SelectedPathStringGibt den Pfad für die ausgewählte Datei zurück.
SelectedPathsStringGibt die Liste aller Pfade der ausgewählten Dateien zurück, wenn die Multi-Eigenschaft True ist.
ValueVariantWenn die Multi-Eigenschaft False ist, dann ist diese Eigenschaft ein Synonym für die SelectedPath-Eigenschaft (Datentyp String). Wenn die Multi-Eigenschaft True ist, dann ist diese Eigenschaft ein Synonym für die SelectedPaths-Eigenschaft (Datentyp String-Array).
ShowBookmarkBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob das Lesezeichenfeld sichtbar ist oder nicht.
ShowButtonBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob die Standard-Button ('OK' and 'Cancel') sichtbar sind oder nicht.
ShowDetailedBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob die Dateien in einer Detailansicht oder mit Symbolen angezeigt werden oder nicht. Für Versionen > 3.18.4 nicht mehr verfügbar - siehe Kommentar unter Hinweise.
ShowFileBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob die Datei-TextBox sichtbar ist oder nicht. Sie ist standardmäßig sichtbar.
ShowDirectoryBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob Verzeichnisse in der FileChooser angezeigt werden oder nicht.
ShowHiddenBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob die versteckten Dateien oder Verzeichnisse angezeigt oder versteckt werden.
ShowPreviewBooleanGibt den Wahrheitswert zurück oder setzt den Wahrheitswert, ob die Miniaturbilder angezeigt werden oder nicht.

Tabelle 6.9.5.1.1 : Eigenschaften der Klasse FileChooser

6.9.5.2 Methoden

Die Klasse FileChooser verfügt über diese ausgewählten Methoden:

MethodeBeschreibung
Delete( )Löscht das Steuerelement FileChooser.
Reload( )Lädt den Inhalt der Ansicht neu, als ob Sie auf die Schaltfläche 'Aktualisieren' geklickt hätten.

Tabelle 6.9.5.2.1 : Ausgewählte Methoden der Klasse FileChooser

6.9.5.3 Ereignisse

Die Klasse FileChooser verfügt über diese ausgewählten Ereignisse:

EreignisBeschreibung
Activate( )Dieses Ereignis wird ausgelöst, wenn ein Benutzer auf eine Datei doppelt klickt oder wenn der Button 'OK' angeklickt wurde.
Cancel( )Dieses Ereignis wird ausgelöst, wenn ein Benutzer auf den Button 'Cancel' klickte. Die Eigenschaften SelectedPath-Eigenschaft und die SelectedPaths-Eigenschaft sind leer.

Tabelle 6.9.5.3.1 : Ausgewählte Ereignisse der Klasse FileChooser

Hinweise:

Projektweiten Zugriff auf den Pfad zu einer ausgewählten Datei mit FileChooser.Multi = False bekommen Sie, wenn Sie den Wert der Eigenschaft FileChooser.SelectedPath zum Beispiel in einer (Public-)Variablen sFilePath = FileChooser.SelectedPath speichern.

B

Abbildung 6.9.5.3.1: Anzeige Datei-Pfad der ausgewählten Datei im FileChooser

Alternativ können Sie auch die Zuweisung sFilePath = FileChooser.Value verwenden, weil der Wert dieser Eigenschaft vom gesetzten Modus abhängig ist und für FileChooser.Multi = False nur einen String liefert.

Zugriff auf die Datei-Pfade für alle im Modus FileChooser.Multi = True ausgewählten Dateien bekommen Sie, wenn Sie die Liste der ausgewählten Dateien – gespeichert in der Eigenschaft FileChooser.SelectedPaths – in einer (Public-)Array-Variablen wie aFilePaths = FileChooser.SelectedPaths speichern.

Sie können alternativ auch die Zuweisung aFilePaths = FileChooser.Value verwenden, weil der Wert dieser Eigenschaft vom gesetzten Modus abhängig ist und für FileChooser.Multi = True jedoch ein String-Array liefert:

B3

Abbildung 6.9.5.3.2: Liste der ausgewählte Dateien in einem FileChooser

Mit der Eigenschaft FileChooser.Filter können Sie alle im Projekt benötigten Datei-Filter setzen und über die Eigenschaft FileChooser.FilterIndex zur Laufzeit sehr flexibel auf einzelne Filter-Gruppen umschalten:

  FileChooser1.Filter = ["*.png;*.jp*;*.gif", "Picture files", "*.txt;*.xml;*.conf", "Text files"]
  FileChooser1.FilterIndex = 0 ' Display images with the extensions png, jp* and gif only
' FileChooser1.FilterIndex = -1 ' Display all files

6.9.5.4 Exkurs Bookmarks

Das Steuer-Element Filechooser hat ein eigenes Lesezeichen-System. Setzen Sie die Eigenschaft ShowBookmark auf True, um es anzuzeigen. Das Lesezeichen-Menü ist jetzt sichtbar und ein Dropdown-Menü mit Lesezeichen wird angezeigt, wenn Sie auf die Schaltfläche „Lesezeichen“ klicken.

Das Lesezeichen-Menü besitzt ein eigenes Kontext-Menü:

B4

Abbildung 6.9.5.4.1: Lesezeichen-Menü im FileChooser

Das Dropdown-Menü enthält 3 Typen von Lesezeichen:

(Typ 1) Standard-Lesezeichen ①
(Typ 2) Private Lesezeichen ②
(Typ 3) Benutzer-Lesezeichen ③

6.9.5.5 Standard-Lesezeichen

Die Standard-Lesezeichen zeigen auf Home und System. Beachten Sie: Den Menüeintrag Desktop sehen Sie zusätzlich nur dann, wenn die Komponente gb.desktop geladen ist.

6.9.5.6 Private Lesezeichen

Auf private Lesezeichen wird über die Eigenschaft Bookmarks zugegriffen. Bookmarks ist vom Datentyp ein Array von Collections. Jede Bookmark-Collection muss einen Key „Path“ enthalten, der auf den Pfad des Lesezeichens zeigt. Optionale Keys sind „Name“ und „Icon“. Alle anderen Key-Namen werden ignoriert. Wichtig: Der angegebene Pfad muss existieren!

Dieser Lesezeichen-Typ 2 ist anwendungsspezifisch, wird nicht permanent gespeichert, sondern zur Laufzeit erzeugt. Der relevante Quelltext im Form-Open-Ereignis basiert auf Hinweisen von Tony Morehen (tmorehen@ajm-software.com):

Public Sub Form_Open()
 
  Dim cPrivateBookmarks As Collection[]
  Dim cBookmark As Collection
 
  FMain.Resizable = True
  ...
  cPrivateBookmarks = New Collection[]
  cBookmark = New Collection
' Syntax: cBookmark.Add(Value,Key)  {Path, [Name, Icon]}
  cBookmark.Add(User.Home &/ "BildTon/Fractale", "Path")
  cBookmark.Add("Fractals", "Name")
  cBookmark.Add("icon:/small/plugin", "Icon")
  cPrivateBookmarks.Add(cBookmark)
  cBookmark = New Collection
  cBookmark.Add(User.Home &/ "ZumPrivaten/Bilder", "Path")
  cBookmark.Add("Pictures", "Name")
  cBookmark.Add("icon:/small/image", "Icon")  
  cPrivateBookmarks.Add(cBookmark)  
  Filechooser1.Bookmarks = cPrivateBookmarks
' The alternative uses the inline syntax: 
' Filechooser1.Bookmarks = [["Path": User.Home &/ "BildTon/Fractale", "Name": "Fractals", "Icon": "icon:/small/plugin"], ["Path": User.Home &/ "ZumPrivaten/Bilder", "Name": "Pictures", "Icon": "icon:/small/image"]]
  FileChooser1.ShowBookmark = True
  ...
End

6.9.5.7 Benutzer-Lesezeichen

Es ist für die Anzeige von Benutzer-Lesezeichen notwendig, dass die Komponente gb.settings geladen ist. Benutzer-Lesezeichen erzeugen und bearbeiten Sie über die Menü-Einträge „Lesezeichen für aktuelles Verzeichnis erstellen“ und „Lesezeichen bearbeiten“. Die Lesezeichen werden im Dateipfad $HOME/.config/gambas3/gb.form.conf gespeichert. Das ist der Inhalt der Datei gb.form.conf, die im vorgestellten Projekt angelegt wurde:

[Bookmarks]
Count=2
Bookmark1=["/home/hans/AirCard_785S","AirCard_785S"]
Bookmark2=["/home/hans/V24T","V24T"]

Achtung: Die Liste der Lesezeichen ist benutzerspezifisch. Sie wird von allen Anwendungen verwendet, die Gambas-Steuer-Elemente einsetzen, welche ein Lesezeichen-Menü besitzen – wie zum Beispiel das Steuer-Element DirChooser.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k6/k6.9/k6.9.5/start.txt · Zuletzt geändert: 10.11.2023 von honsek

Seiten-Werkzeuge