vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Ordnerauswahl 
Autor: Braindead
Datum: 29.05.02 15:44

Kopiere dies in ein Klassenmodule und nenne dieses FolderDialog

*****************Start Klasse************************
Private Type BrowseInfo
    HWndOwner As Long       'Das Handle des "Besitzer"-Fensters, also des _
      Fensters, von dem aus der Verzeichnisdialog aufgerufen wird.
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long       'Diese Variable enthält die Beschriftung des 
    ' Dialogs, die in der Titelleiste des Dialogfensters angezeigt wird.
    ulFlags As Long         'Diese Variable beeinflusst die Verhaltensweise des 
    ' Dialogs.
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
 
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) _
  As Long
 
Public Enum uFlag
    BIF_BROWSE_FOR_COMPUTER = &H1000    'Als Auswahl sind nur Computer erlaubt. 
    ' Wenn der Anwender andere Objekte, also Ordner oder Laufwerke markiert, 
    ' kann der OK-Button nicht ausgewählt werden.
    BIF_BROWSE_FOR_PRINTER = &H2000     'Gestattet nur Drucker als Auswahl.
    BIF_BROWSE_INCLUDE_FILES = &H4000   'Der Dialog zeigt neben Computern, 
    ' Laufwerken und Ordnern auch Dateien an.
    BIF_RETUR_NONLY_FSDIRS = &H1        'Gestattet nur Dateisystemordner als 
    ' Auswahl.
    BIF_DONT_GOBELOW_DOMAIN = &H2       'Der Dialog zeigt keine Netzwerkordner 
    ' unterhalb der aktuellen Domain.
    BIF_STATUSTEXT = &H4                'Der Dialog enthält eine Statuszeile. 
    ' Die Rückruffunktion kann die Statuszeile ausfüllen.
    BIF_RETUR_NFSANCE_STORS = &H8       'Gestattet nur Dateisystemobjekte als 
    ' Auswahl.
End Enum
 
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As _
  Long, ByVal lpBuffer As String) As Long
 
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal _
  lpString1 As String, ByVal lpString2 As String) As Long
 
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (pv As Any)
 
Private Const MAX_PATH = 260
 
Public Function Show(ByRef hwnd As Long, ByVal windowTitel As String, ByVal _
  uFlags As uFlag, ByRef selectedFolder As String) As Boolean
 
On Error GoTo fehler:
 
    Dim n As Integer
    Dim IDList As Long
    Dim Result As Long
    Dim ThePath As String
    Dim BI As BrowseInfo
 
    'Erzeugen der Datenstruktur
    With BI
        .HWndOwner = hwnd
        .lpszTitle = lstrcat(windowTitel, "")
        'Nur Dateisystemordner erlaubt
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
 
    IDList = SHBrowseForFolder(BI)
 
    'Wenn IDList > 0, dann Auswahl bearbeiten
    If IDList > 0 Then
 
        'Speicher anfordern
        ThePath = String$(MAX_PATH, 0)
        'IID-Liste in Pfadangabe konvertieren
        Result = SHGetPathFromIDList(IDList, ThePath)
 
        'Speicher für IID-Liste verwerfen
        Call CoTaskMemFree(IDList)
 
        'Alle Bytes hinter Nullbyte verwerfen
        n = InStr(ThePath, vbNullChar)
        If n Then selectedFolder = Left$(ThePath, n - 1)
 
        selectedFolder = selectedFolder & IIf(Right(selectedFolder, 1) <> "\", _
          "\", "")
 
        Show = True
 
    Else
 
        Show = False
 
    End If
 
Exit Function
 
fehler:
 
    Show = False
    Exit Function
 
End Function
 
*****************end Klasse************************
 
*****************Start aufruf Klasse************************
 
dim fd as new folderdialog,path$
 
if  fd.show(me.hwnd,"Bitte Ordner wählen",0&,path) then msgbox path
 
*****************End aufruf Klasse************************
hmf
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ordnerauswahl72gorganogan29.05.02 14:28
Re: Ordnerauswahl59Braindead29.05.02 15:44
Re: Ordnerauswahl258unbekannt29.05.02 17:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel