All Forums
 Категория Visio
 Форум Вопросы и ответы
 FileOpen Dialog
Author Previous Topic Topic Next Topic  

Евгений

88 Posts

Posted - 02/03/2005 :  17:45:35
Нужно открыть документ, который должен выбрать юзер. Подскажите, как показать ему такое окно, как при нажатии File->Open, или что-нибудь подобное. И желательно чтобы видимость файлов была ограничена до заданых расширений (можно дефолтные расширения программы).

Tumanov

Russia
1198 Posts

Posted - 02/03/2005 :  19:06:24
Application.DoCmd (1002) не годится?
Тогда можно использовать виндусовский CommonDialog1.ShowOpen из comdlg32.ocx. Там все фильтры поставить можно и вообще настроек куча.
Go to Top of Page

Евгений

88 Posts

Posted - 02/03/2005 :  19:50:03
> Application.DoCmd (1002) не годится?
Нет, т.к. я хочу не просто открыть документ, а открыть его невидимым, с выключеными макрами, сразу получить на него ссылку и т.п.


> Тогда можно использовать виндусовский CommonDialog1.ShowOpen
> из comdlg32.ocx. Там все фильтры поставить можно
> и вообще настроек куча.
А примерно как это делается?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 02/03/2005 :  21:31:16
В VB6 на формочку бросается компонент CommonDialog, а дальше примерно так:
CommonDialog1.InitDir = InPath(1)
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNLongNames
'CommonDialog1.Filter = "*.*"
'CommonDialog1.FilterIndex = 1
CommonDialog1.FileName = "*.*"
CommonDialog1.DialogTitle = "Исходный файл"
CommonDialog1.ShowOpen 'Это собственно вызов диалога
If CommonDialog1.FileName = "" Then Exit Sub
s = CommonDialog1.FileName
Debug.Print s

Можно в MSDN дать поиск по ShowOpen - должна быть куча материала.
Вот пример использования OCX (это без формочки) из статьи "Enhance Your Apps with Common Dialogs: Part I"
Sub GetFileFromOCX()
Dim CDLG As Object
Set CDLG = CreateObject("MSComDlg.CommonDialog")
With CDLG
.DialogTitle = "Get me a File!"
.Filter = _
"Documents|*.doc|Templates|*.dot|Text Files|*.txt"
.ShowOpen
MsgBox .FileName
End With
Set CDLG = Nothing
End Sub
Но вот "с выключеными макрами" - этого я не обещаю :)
Go to Top of Page

Евгений

88 Posts

Posted - 02/04/2005 :  18:20:02
Спасибо :)
Go to Top of Page

Dmitry

25 Posts

Posted - 08/03/2005 :  23:48:37
Пробовал метод с OCX. Не работает. В инете пишут что без developer license он небудет работать. Может кто нить знает как это обойти?

quote:
Originally posted by Tumanov

В VB6 на формочку бросается компонент CommonDialog, а дальше примерно так:
CommonDialog1.InitDir = InPath(1)
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNLongNames
'CommonDialog1.Filter = "*.*"
'CommonDialog1.FilterIndex = 1
CommonDialog1.FileName = "*.*"
CommonDialog1.DialogTitle = "Исходный файл"
CommonDialog1.ShowOpen 'Это собственно вызов диалога
If CommonDialog1.FileName = "" Then Exit Sub
s = CommonDialog1.FileName
Debug.Print s

Можно в MSDN дать поиск по ShowOpen - должна быть куча материала.
Вот пример использования OCX (это без формочки) из статьи "Enhance Your Apps with Common Dialogs: Part I"
Sub GetFileFromOCX()
Dim CDLG As Object
Set CDLG = CreateObject("MSComDlg.CommonDialog")
With CDLG
.DialogTitle = "Get me a File!"
.Filter = _
"Documents|*.doc|Templates|*.dot|Text Files|*.txt"
.ShowOpen
MsgBox .FileName
End With
Set CDLG = Nothing
End Sub
Но вот "с выключеными макрами" - этого я не обещаю :)


Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)