Можно ли в диалоге OpenFile принудительно указать путь?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics2
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2012 (Ср) 11:18

Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение kibernetics2 » 05.09.2012 (Ср) 11:43

Здраствуйте!
Пользуюсь кастомным юзерконтролом. При вызове диалога открыть файл постоянно приходится лезть в дебри ища необходимую папку.
Вопрос такой: можно ли при вызове диалога "Открыть файл" принудительно указать путь к папке, в которой будет осуществляться выбор файла?
Сам проект с юзерконтролом прикладываю. По умолчанию он открывает путь c:\.
ucFolder.rar
ucBrowseFolder
(36.66 Кб) Скачиваний: 66

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение pronto » 05.09.2012 (Ср) 12:43

Найди функцию ShowOpen, добавь в её объявление параметр InitialFolder As String.
В теле функции найди блок With FileDialog ... End With, внутрь него вставь строку .sInitDir = InitialFolder.
P.S. Не понятно, есть ли смысл в использовании чужого UC, когда то же самое можно сделать стандартным CommonDialog'ом?
O, sancta simplicitas!

kibernetics2
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2012 (Ср) 11:18

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение kibernetics2 » 05.09.2012 (Ср) 12:57

pronto писал(а):P.S. Не понятно, есть ли смысл в использовании чужого UC, когда то же самое можно сделать стандартным CommonDialog'ом?

так стандартный CommonDialog же подрузамевает использование *.ocx, а не хочется юзать компоненты.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение pronto » 05.09.2012 (Ср) 13:19

Можно и без OCX обойтись...
Код: Выделить всё
Private Const cdlOFNOverwritePrompt As Long = 2
Private Const cdlOFNAllowMultiselect As Long = 512
Private Const cdlOFNExtensionDifferent As Long = 1024
Private Const cdlOFNFileMustExist As Long = 4096
Private Const cdlOFNExplorer As Long = 524288

Option Explicit

Private Sub Command1_Click()
Dim CommonDialog1 As Object
Set CommonDialog1 = CreateObject("MSComDlg.CommonDialog")


' Sets the File List box to Word documents and Excel documents
CommonDialog1.Filter = "Word Documents (*.doc)|*.doc|Excel Spreadsheets (*.xls)|*.xls"

' Set the default files type to Word Documents
CommonDialog1.FilterIndex = 1

' Sets the flags - File must exist and Hide Read only
CommonDialog1.Flags = cdlOFNOverwritePrompt Or _
                      cdlOFNAllowMultiselect Or _
                      cdlOFNExtensionDifferent Or _
                      cdlOFNFileMustExist Or _
                      cdlOFNExplorer

' Set dialog box so an error occurs if the dialogbox is cancelled
CommonDialog1.CancelError = True

' Enables error handling to catch cancel error
On Error Resume Next
' display the dialog box
CommonDialog1.ShowOpen
If Err Then
    ' This code runs if the dialog was cancelled
    MsgBox "Dialog Cancelled"
    'Exit Sub
End If
' Displays a message box.
MsgBox "You selected " & CommonDialog1.FileName

End Sub
O, sancta simplicitas!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение Хакер » 05.09.2012 (Ср) 13:20

kibernetics2 писал(а):так стандартный CommonDialog же подрузамевает использование *.ocx, а не хочется юзать компоненты.

А ты сможешь объяснить, почему не хочется юзать компоненты? Куча людей оставляла свои семьи, и в поте лица разрабатывала технологию COM и концепцию контролов. Чтобы потом люди заболели массовой истерией и начали необоснованно избегать использование контролов? Объясни это.

И да, если уж тебе не мил контрол, используй API-фукнции, над которым контрол является простой обёрткой.

И да, если ты клон пользователя kibernetics, то зачем такое делать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics2
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2012 (Ср) 11:18

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение kibernetics2 » 05.09.2012 (Ср) 13:40

Хакер писал(а):И да, если ты клон пользователя kibernetics, то зачем такое делать?

мне показалось, что мой акк удалён. т.к. на просьбу восстановить пасс, сайт сказал, что не знает такого ни ника, ни мейла.

не люблю юзать компоненты. постоянно ходишь по всем компам и ставишь недостающее.
инсталяк делать всё время после компиляции тоже хлопотняк.

pronto писал(а):Можно и без OCX обойтись...

не могу понять, где там задаётся путь, кторый мне нужен при открытии диалога?
как мне показать OpenFile с открытой папкой, например: c:\Windows\system32\?

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение pronto » 05.09.2012 (Ср) 14:00

Практически точно также, как и в первом случае: CommonDialog1.InitDir = "c:\Windows\system32"
O, sancta simplicitas!

kibernetics2
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2012 (Ср) 11:18

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение kibernetics2 » 05.09.2012 (Ср) 17:13

pronto спасиб милый человек. приду скоро домой - попробую сделать.

:cheers: супер! код то что надо!

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Можно ли в диалоге OpenFile принудительно указать путь?

Сообщение ark » 10.09.2012 (Пн) 6:13

Из подписи к аттачу я так понял, нужен диалог выбора папки, а не файла. Такого контрола в VB6 нету. Если нужен именно выбор папки -
BffDlg.zip
Browse for folder
(4.76 Кб) Скачиваний: 104

ЗЫ. А субклассинг в аттаче ТС оригинальный :!:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 64

    TopList