Тема: Диалог выбора папки

В TDMS нет диалога выбора папки. Есть функция API Windows SHBrowseForFolder. Как ею воспользоваться из скрипта?

Re: Диалог выбора папки

'============================================================================
==
' Функция предоставляет диалог выбора папки
'------------------------------------------------------------------------------
' GetFolder:String - Полный путь к выбранной папке
'============================================================================
==
Private Function GetFolder()
Dim objPath, objFolder, objFolderItem, objShell, strPath
  Const MY_COMPUTER = &H11&
  Const WINDOW_HANDLE = 0
  Const OPTIONS = 0
  objPath = ""
  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.Namespace(MY_COMPUTER)
  Set objFolderItem = objFolder.Self
  strPath = objFolderItem.Path  
  Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath)   
  If Not objFolder Is Nothing Then
     Set objFolderItem = objFolder.Self
      objPath = objFolderItem.Path  
  End If
  GetFolder = objPath
End Function

Re: Диалог выбора папки

Thanks большое

(изменено: vlalexey, 8 сентября 2010г. 15:36:28)

Re: Диалог выбора папки

Edhunter пишет:
'============================================================================
==
' Функция предоставляет диалог выбора папки
'------------------------------------------------------------------------------
' GetFolder:String - Полный путь к выбранной папке
'============================================================================
==
Private Function GetFolder()
Dim objPath, objFolder, objFolderItem, objShell, strPath
  Const MY_COMPUTER = &H11&
  Const WINDOW_HANDLE = 0
  Const OPTIONS = 0
  objPath = ""
  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.Namespace(MY_COMPUTER)
  Set objFolderItem = objFolder.Self
  strPath = objFolderItem.Path  
  Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath)   
  If Not objFolder Is Nothing Then
     Set objFolderItem = objFolder.Self
      objPath = objFolderItem.Path  
  End If
  GetFolder = objPath
End Function

Постоянно возвращает objFolder=Nothing

Не подскажите в чем может быть причина?

Re: Диалог выбора папки

Nothing возвращается при нажатии "Отмена"...
Диалог вообще выводится ?