12.4.3 Klasse Dialog – Mehrfachauswahl

Die Methode OpenFile( [ Multi ] ) hat ein optionales Argument 'Multi' vom Daten-Typ 'Boolean'. Wenn das Argument 'Multi' den Wert True hat, so kann der Benutzer mehrere Dateien auswählen. Die Methode selbst gibt True zurück, wenn der Benutzer den Abbruch-Button gedrückt hat oder False, wenn der Benutzer auf den OK-Button gedrückt hat. Die Pfade der ausgewählten Dateien werden in diesem Fall in der Eigenschaft Dialog.Paths in einem String-Array gespeichert.

Im folgenden Projekt wird die Mehrfachauswahl (MultiSelect) genutzt, um mehrere Bild-Dateien aus einem Verzeichnis auszuwählen. Die ausgewählten Bilder werden dann in einem Bildbetrachter angezeigt. Eine einfache Navigation ist vorhanden.

B1

Abbildung 12.4.3.1: Bild-Betrachter (GUI)

Mit dem Druck auf den Button 'Bilder auswählen' wird der Datei-Auswahl-Dialog gestartet und die folgende Dialog-Box geöffnet:

B2

Abbildung 12.4.3.2: Datei-Öffnen-Dialog-Box (Multi-Select)

Anschliessend können Sie durch die Bild-Liste – im Beispiel enthält diese 5 Bilder – navigieren:

B3

Abbildung 12.4.3.3: Bild-Betrachter

Wenn Sie die geöffnete Dialog-Box über 'Abbrechen' schliessen, so bleibt die Datei-Liste leer, da dann die Eigenschaft Dialog.Paths den Wert Null hat.

B4

Abbildung 12.4.3.4: Dialog-Box wird abgebrochen

Es wird nur ein Quelltext-Ausschnitt dargestellt und mit ergänzenden Kommentaren versehen:

[1] Public Sub btnOpenFileImage_Click()  
[2]   Dim sMessage1, sMessage2 As String
[3]   
[4]   SetEnabled() 
[5]   Dialog.Title = "Wählen Sie Bild-Dateien aus (Bilder-Liste)..."
[6] ' Dialog.Filter = ["*.jpg", "JPG-Bilddatei", "*.png", "PNG-Bilddatei", "*", "Alle Dateien"]
[7]   Dialog.Filter = ["*.png;*.jpg;*.jpeg;*.gif", "Bild-Dateien", "*", "Alle Dateien"]
[8]   Dialog.ShowHidden = False
[9]   Dialog.Path = Application.Path &/ "Images"  
[10]   
[11] ' Bilder auswählen (True -> Multiselect aktiviert)
[12]   If Dialog.Openfile(True) Then 
[13]      FMain.Text = "Dialog.OpenFile(True) mit Multi-Select"
[14]      PictureBoxD.Picture = Picture["Symbols/intro.jpg"] 
[15]      Return 
[16]   Endif
[17]   
[18]   sImagePaths = New String[] ' Neue Bild-Liste
[19]   sImagePaths = Dialog.Paths ' Bild-Liste sichern → Navigation
[20]   iPictureIndex = 0
[21]   
[22] ' Zur Kontrolle:
[23] ' For Each sPathName In Dialog.Paths
[24] '   Print sPathName
[25] ' Next
[26]   
[27]   PictureBoxD.Picture = Picture.Load(Dialog.Paths[0]) ' Anzeige des ersten Bildes
[28]   
[29]   sMessage1 = "Die Bild-Liste enthält genau " & Dialog.Paths.Count & " Bild"
[30]   sMessage2 = "Die Bild-Liste enthält " & Dialog.Paths.Count & " Bilder"
[31]   FMain.Text = IIf(Dialog.Paths.Count = 1, sMessage1, sMessage2)
[32]   
[33] ' Einschalten der Bild-Navigation, wenn die Bild-Liste mehr als ein Bild enthält
[34]   If Dialog.Paths.Count > 1 Then 
[35]      btnNext.Enabled = True
[36]   Else
[37]      btnNext.Enabled = False
[38]   Endif
[39]   
[40]   Catch
[41]     Message.Info(Error.Text)
[42] End ' btnOpenFileImage_Click()

Kommentar:

Den kompletten Quelltext finden Sie im Download-Bereich im Projekt-Archiv.

Download