| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Удобный выбор папки |
| Автор: ИгнатьевАлексей 28.7.2006, 12:15 |
| Друзья! Подскажите пожалуйста! Надо на форме получать путь к папке в текстовом виде. Не могу найти ничего подходящего и готового. Т.е. надо нечто подобное CommonDialog\ShowOpen, только для выбора папок, а не файлов. Заранее благодарен! |
| Автор: mihanik 28.7.2006, 12:26 | ||
| ИгнатьевАлексей, я в таких случаях обычно использую DirListBox совместно с DriveListBox. При необходимости выношу их на отдельную формочку... Кода там требуется, ну... Строк 5. Не больше. Если хочешь, дам примерчик... Добавлено @ 12:32 Короче так... На форму бросаешь DirListBox и DriveListBox Пишешь код события изменения DriveListBox для того, чтобы согласовать оба элемента.
А потом обрабатываешь событие даблклик по DirListBox и берёшь от него свойство .path Это и будет полный путь к твоеё папке... Добавлено @ 12:34 а.... Замечание, если в DriveListBox выберешь дискету, а дискеты не будет, то прога вылетит, т.е. нужен обработчик ошибок... Подходит идея? Добавлено @ 12:36 А можно использовать стандартный диалог ShowOpen, но немного через... Гм... В приличном обществе о таком не говорят... |
| Автор: ИгнатьевАлексей 28.7.2006, 12:46 |
| Спасибо, приятель! Исчерпывающе! Да вот я думал, что человечество уже сделало это. Не потому, что лень 5 строк кода написать, а потому, что стандартные вещи удобнее, как правило и элегантнее, не так ли? |
| Автор: ИгнатьевАлексей 28.7.2006, 13:42 |
| Передо мной по кругу лежат 5 книжек. Обзорно просмотрел - кроме того, о чем ты мне любезно рассказал, не нашел! Из чего делаю вывод, что если и есть что либо подобное, то не в составе базовых вещей. Хотя хочется верить, что это не так. |
| Автор: ИгнатьевАлексей 28.7.2006, 14:08 |
| Ой беда! Я и забыл, что пишу это в VBA, а там мне что-то это не найти! Может же такое быть? |
| Автор: mihanik 28.7.2006, 14:17 | ||
| Не расстраивайся!!! Я знаешь как сделал однажды в Excel'e? Создал форму, разместил на ней CommonDialog и пользовался им спокойно. Например так...
А кто тебе мешает создать форму? Добавлено @ 14:18 Кроме того!!! На форме ты же можешь и DirListBox совместно с DriveListBox разместить... |
| Автор: Dexx 28.7.2006, 14:33 | ||
| Функция SHBrowseForFolder Описание : Выводит на экран диалоговое окно ' Выбор папки'. Операционная система : Windows NT 4.0 или выше; Windows 95 или выше Библиотека : Shell32.dll
Вот так и не важно VB или VBA |
| Автор: mihanik 28.7.2006, 14:35 |
| Dexx!!! О! Классно!!! Думаю, что ИгнатьевАлексей, это понравится... |
| Автор: ИгнатьевАлексей 28.7.2006, 16:08 | ||||||
Понравилось, хотя и заморочно. Dexx, Вопросик по коду, если позволите.
Зачем это делается? Ведь это переменная типа Long, или не так просто? Почему к ней такое особое внимание? mihanik,
Вот и проблема в этом, что в VBA я не нашел таких компонентов для формы, а в VB они есть. Или ты имеешь в виду создать форму в VB, а не в VBA? |
| Автор: mihanik 28.7.2006, 16:16 | ||
Покопайся среди Additional Controls. (Правой кнопкой по тулбоксу ) Там наверняка должно быть что-нибудь подобное... Сейчас копаться некогда!!! Убегаю с работы!!! Завтра или в понедельник посмотрю... |
| Автор: Akina 28.7.2006, 19:06 | ||
Не заморочно, а правильно. Если очень хочется остаться в рамках регистрированных компонентов - то надо использовать CommonDialuog.ShowOpen - однако он предназначен для выбора файла, а не каталога. Что же до создания собственной формы с DriveListBox/DirListBox - вот это действительно путь через то самое место, и нужно очень много причин для выбора ТАКОГО пути. Сорри, не мог не высказаться. |
| Автор: Дмит 28.7.2006, 22:35 | ||
В Excel 2000 можно так:
|
| Автор: cardinal 29.7.2006, 01:29 | ||
|
| Автор: ИгнатьевАлексей 29.7.2006, 10:23 |
| mihanik, да не надо уже, спасибо! Дмит предложил классную вещь, как мне кажется, я в книжке ее не заметил! Akina, скажи, пожалуйста, а то, что Дмит предложил по какой-то причине хуже, чем SHBrowseForFolder? |
| Автор: Akina 6.8.2006, 17:13 | ||
Ничуть не хуже. Это просто программная эмуляция ручного выбора папки через главное меню приложения. Одна беда - этот пункт может оказаться недоступным. Нет прав, блокировка на уровне приложения, пользователя, OLE-сервера... |