DirListBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Stable
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 20.06.2006 (Вт) 7:30
Откуда: УФА

DirListBox

Сообщение Stable » 08.01.2007 (Пн) 18:36

Как сделать, чтоб DirListBox показывал только определенную папку диска. Допустим С:windows. [/quote]

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 08.01.2007 (Пн) 18:39

Код: Выделить всё
dir1.path
Или речь идет об исключении всего кроме этой папки?
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Stable
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 20.06.2006 (Вт) 7:30
Откуда: УФА

Сообщение Stable » 08.01.2007 (Пн) 18:57

Да, исключить все кроме этой папки.

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 08.01.2007 (Пн) 19:39

Вот это работает, хотя и не очень красиво
Код: Выделить всё
Private Sub Dir1_Change()
    If UCase(Dir1.List(-1)) = "C:\" Then
        Dir1.Path = "C:\windows"
    End If
End Sub

Private Sub Form_Load()
    Dir1.Path = "C:\windows"
End Sub
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Stable
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 20.06.2006 (Вт) 7:30
Откуда: УФА

Сообщение Stable » 09.01.2007 (Вт) 11:56

а можно как нибудь сделать, чтоб небыло видно других папок, только папка windows была видна.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1668
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 09.01.2007 (Вт) 17:37

Пиши свой контрол или ищи другие. Статей премного.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.01.2007 (Вт) 17:54

Stable писал(а):а можно как нибудь сделать, чтоб небыло видно других папок, только папка windows была видна.

:shock: А для чего тогда вообще нужен DirListBox, если не секрет?
Salus populi suprema lex

Stable
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 20.06.2006 (Вт) 7:30
Откуда: УФА

Сообщение Stable » 17.01.2007 (Ср) 10:33

как сделать, чтоб он из папки windows вообще невыходил?Работал только в ней.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.01.2007 (Чт) 15:16

Типа так что ли?
Код: Выделить всё
Private Sub Dir1_Change()
    If UCase(Dir1.Path) <> "C:\WINDOWS" Then
        Dir1.Path = "C:\windows"
    End If
End Sub

Private Sub Form_Load()
    Dir1.Path = "C:\windows"
End Sub
Salus populi suprema lex

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 18.01.2007 (Чт) 15:42

Stable писал(а):а можно как нибудь сделать, чтоб небыло видно других папок, только папка windows была видна.
Через DirListBox - нет.
Ищи в поисковиках "Browse for Folder" или
Debugger писал(а):Пиши свой контрол или ищи другие. Статей премного.
использовать нужно API функцию
Код: Выделить всё
SHBrowseForFolder
No comments ...

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.01.2007 (Чт) 16:57

SHBrowseForFolder с единственным параметром - указателем на структуру BROWSEINFO откроет стандартное диалоговое окно "Обзор папок"... не припомню, что б в состав структуры входили параметры, позволяющие отображать только одну папку...
Salus populi suprema lex

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.01.2007 (Чт) 17:34

dr.MIG писал(а):
Stable писал(а):а можно как нибудь сделать, чтоб небыло видно других папок, только папка windows была видна.

:shock: А для чего тогда вообще нужен DirListBox, если не секрет?


Если честно - этот контрол нужен для полных чайников ;)

Возьми обыкновенный ListBox и заполни его самостоятельно.

А по нормальному - есть SHBrowseForFolder (не ошибся в названии?).
С ней можно многое сделать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 18.01.2007 (Чт) 19:28

Код: Выделить всё
Private Declare Function SHBrowseForFolder Lib "shell32.dll" (lpbi As BrowseInfo) As Long

В качестве параметра в функцию нада передать структуру
Код: Выделить всё
Private Type BrowseInfo
    hWndOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type

Где pidlRoot это уникальный индификатор директории, который мы можем получить с помощью
Код: Выделить всё
SHSimpleIDListFromPath Lib "shell32.dll" Alias "#162" (ByVal szPath As String) As Long

У меня был пример требуемой автором поста задачи, как найду выложу, а пока можно посмотреть примеры с "планеты":
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=49326&lngWId=1
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=56598&lngWId=1
No comments ...

Stable
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 20.06.2006 (Вт) 7:30
Откуда: УФА

Сообщение Stable » 30.01.2007 (Вт) 19:45

dr.MIG
Типа того, но чтоб и с подпапками работал, папки windows.


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

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

Сейчас этот форум просматривают: AhrefsBot, серверянин и гости: 1

    TopList