Beim Einsatz der Microsoft Common-Dialog Controls (FileOpen/FileSave) gibt es u.a. auch eine Eigenschaft namens "FilterIndex". Über diese Eigenschaft lässt sich der Index der festgelegten Dateitypen vorgeben. Hat man nun der "Filter"-Eigenschaft eine ganze Menge von Dateitypen zugewiesen oder erweitert man die Dateitypen nachträglich um weitere Einträge, hilft nachfolgende Funktion, um die FilterIndex-Eigenschaft korrekt zu setzen. Hierbei braucht der Funktion lediglich die gewünschte Dateierweiterung und die Filter-Eigenschaft des CommonDialog-Controls übergeben werden. ' Ermittelt den FilterIndex anhand der festgelegten Dateierweiterung Public Function GetFilterIndexByExtension(Extension As String, Filter As String) Dim arFilter() As String Dim i As Long Dim n As Long n = 0 ' Den Filter bei jedem | teilen arFilter = Split(Filter, "|") ' Jedes 2. Element prüfen ' (die Elemente mit den Dateierweiterungen) For i = 1 To UBound(arFilter) Step 2 n = n + 1 ' Zähler eins erhöhen If InStr(1, arFilter(i), "*." & Extension, vbTextCompare) > 0 Then ' wenn Extension gefunden, ' dann gebe den Zähler zurück GetFilterIndexByExtension = n Exit For End If Next i End Function ' Filter zusammensetzen Public Function AddFilter(ByVal sType As String, ByVal sExtensions As String) AddFilter = sType & " (" & sExtensions & ")|" & sExtensions End Function Anwendungsbeispiel: Private Sub mnuFileSaveAs_Click() With CommonDialog1 .CancelError = True ' Auswahl der möglichgen Dateitypen festlegen .Filter = AddFilter("HTML-Dateien", "*.html; *.htm") & "|" & _ AddFilter("Style-Sheets", "*.css; *.css?") & "|" & _ AddFilter("XML-Formate", "*.xml; *.xsd; *.wml") & "|" & _ AddFilter("PHP-Dateien", "*.php; *.pht; *.phtml; *.php?; *.inc") & "|" & _ AddFilter("JAVA-Server-Page", "*.jsp") & "|" & _ AddFilter("JAVA-Source", "*.class; *.jpx") & "|" & _ AddFilter("C/C++ Source", "*.c; *.cpp; *.cxx; *.cc; *.cs; *.h; *.hpp; *.hxx; *.hh; *.h++") & "|" & _ AddFilter("Visual-Basic-Dateien", "*.vbs; *.frm; *.bas; *.vb; *.cls; *.ctl; *.pag") & "|" & _ AddFilter("Configurations-Dateien", "*.ini; *.inf; *.iss; *.cfg") & "|" & _ AddFilter("Textdateien", "*.txt") & "|" & _ AddFilter("Alle Dateien", "*.*") .FilterIndex = GetFilterIndexByExtension("bas", .Filter) .ShowSave ... End With End Sub Dieser Tipp wurde bereits 13.141 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |