Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: serega374 от 06-07-2018, 10:25:29

Название: Какой References нужен для диалогового окна открытия файла?
Отправлено: serega374 от 06-07-2018, 10:25:29
В общем ругается у меня на неопределенный тип "FileDialogs"
Не могу понять какую библиотеку подключить? Win7 X64
Сейчас включены вот эти:

(https://s33.postimg.cc/o281cscsb/image.png) (https://postimg.cc/image/o281cscsb/)

Код - Visual Basic [Выбрать]
  1. Public Sub OpenFile()
  2.     'sample to show how to use FileDialogs
  3.    Dim objFile As FileDialogs
  4.     Dim strFilter As String
  5.     Dim strFileName As String
  6.    
  7.     Set objFile = New FileDialogs
  8.     'desc,filter combinations must all be separated with pipe char "|"
  9.    strFilter = "All Files (*.*)|*.*|Drawings (*.dwg)|*.dwg"
  10.     objFile.OwnerHwnd = ThisDrawing.HWND    'bind the dialog to the window
  11.    objFile.Title = "Open a drawing"
  12.     'default dir is CurDir
  13.    objFile.StartInDir = "c:\"
  14.     objFile.Filter = strFilter
  15.     'return a valid filename
  16.    strFileName = objFile.ShowOpen
  17.     If Not strFileName = vbNullString Then
  18.         'use this space to perform operation
  19.        MsgBox strFileName
  20.     End If
  21.     Set objFile = Nothing
  22.        
  23. End Sub
  24.  
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: Александр Ривилис от 06-07-2018, 13:13:34
serega374,
Приветствую на форуме!
Прочитай у меня в подписи как следует форматировать код на форуме и соблюдай это правило!
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: Александр Ривилис от 06-07-2018, 13:17:26
В общем ругается у меня на неопределенный тип "FileDialogs"
Может не FileDialogs, а FileDialog ?
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: trir от 06-07-2018, 14:19:18
Нет не FileDialogs, не FileDialog, не OpenFileDialog, не SaveFileDialog
кури WinAPI (http://www.la-solutions.co.uk/content/V8/mvba/MVBA-CommonDialogs.htm)
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: serega374 от 06-07-2018, 16:42:39
кури WinAPI
Спасибо! не могу вот с этим справится. Win10 x64
Код - Visual Basic [Выбрать]
  1. VertName.hwndOwner = ThisDrawing.HWND32
пишет
(https://s22.postimg.cc/e156vb90t/image.png) (https://postimg.cc/image/e156vb90t/)
В выпадающем списке автоподстановки только HWND?
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: Александр Ривилис от 07-07-2018, 00:41:06
В выпадающем списке автоподстановки только HWND?
Теоретически должно подойти. Я так понимаю, что AutoCAD 2013? Тогда возможны проблемы, так как в нём 32-разрядная версия VBA 6.1, а сам он 64-разрядный в Windows x64
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: serega374 от 07-07-2018, 04:22:31
На рабочем компе код заработал там Win7 x64 AutoCAD 2013 32-разряда, удалил PtrSafe и написал HWND32 (в списке автоподстановки есть и просто HWND)
Код - Visual Basic [Выбрать]
  1. ...
  2. Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
  3. ...
  4. VertName.hwndOwner = ThisDrawing.HWND32
  5.  

Дома Win10 x64 AutoCAD 2017 64-разрядный (есть и 19 Electrical то же самое). Без PtrSafe сразу красным строчку выделяет и HWND32 нет в списке автоподстановки. Если пишу просто HWND

Код - Visual Basic [Выбрать]
  1. ...
  2. Public Declare PtrSafe Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
  3. ...
  4. VertName.hwndOwner = ThisDrawing.HWND
  5.  
Ругается "Tipe mismath"
Название: Re: Какой References нужен для диалогового окна открытия файла?
Отправлено: trir от 09-07-2018, 07:02:57
OpenFile.hwndOwner = 0 (https://www.jkp-ads.com/articles/apideclarations.asp)