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.
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:
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:
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.
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.