Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Как показать стандартный диалог выбора каталога?

Поиск:
Q:
Стандартные окна диалога хороши когда вибираешь файл. ShowSave & ShowOpen. А как мне выбрать именно каталог, а не файл?
A:
Код
Option Explicit

Private Type BrowseInfo
   hwndOwner As Long
   pIDLRoot As Long
   pszDisplayName As Long
   lpszTitle As String
   ulFlags As Long
   lpfnCallback As Long
   lParam As Long
   iImage As Long
End Type

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Dim strPath As String

Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
   
   Const BIF_RETURNONLYFSDIRS = 1
   Const MAX_PATH = 260
   Dim intNull As Integer
   Dim lngIdList As Long
   Dim udtBI As BrowseInfo

   With udtBI
       .hwndOwner = hwndOwner
       .lpszTitle = sPrompt
       .ulFlags = BIF_RETURNONLYFSDIRS
   End With

   lngIdList = SHBrowseForFolder(udtBI)
   If lngIdList Then
       strPath = String$(MAX_PATH, 0)
       SHGetPathFromIDList lngIdList, strPath
       CoTaskMemFree lngIdList
       intNull = InStr(strPath, vbNullChar)
       If intNull Then strPath = Left$(strPath, intNull - 1)
   End If
   BrowseForFolder = strPath

End Function

Private Sub Command1_Click()
   
   BrowseForFolder Me.hWnd, "Hi, Select ... "
   Debug.Print strPath

End Sub

Ответ взят на: www.mtsecurity.narod.ru
Автор: unknown
Сайт: http://






Просмотров: 3256

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную