Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизShellTreeView и папка "Рабочий стол" Найти похожие ветки
← →
igorium © (2012-05-11 09:11) [0]Всем привет.
Есть дерево ShellTreeView, которое идет от Рабочего стола (root = rfDesktop).
Есть файл ini, из которого читается информация о том, какой каталог выбрать активным при загрузке программы (ShellTreeView.Path).
Соответственно при закрытии программы в ini-файл записывается путь к каталогу, который сейчас активен.
Все замечательно работает, но если выходить из программы и активный каталог будет "Рабочий стол" или "Мои документы" или их подкаталоги, то
в ini-файл записывается полный путь к Рабочему столу - С:\Documents and Settings\1234\Рабочий стол\. И соответственно открывается дерево не от root = Рабочий стол, а от С:\Documents and Settings\1234\Рабочий стол\
Как это решить я не придумал...
← →
Медвежонок Пятачок © (2012-05-11 09:37) [1]если в ини записана строка равная полученному при старте пути к столу, зен рут = rfDesktop
например
← →
igorium © (2012-05-11 10:39) [2]Это не совсем корректно.
Т.к. при старте может быть начало с диска C, а перед закрытием выбрать Рабочий стол.
Кроме этого, root у меня всегда равен rfDesktop.
Меняется только path.
← →
brother © (2012-05-11 11:03) [3]> Это не совсем корректно.
ты о чем?
если Pos(ini, \Рабочий стол\) then рут = rfDesktop
← →
Dimka Maslov © (2012-05-11 13:38) [4]Что мешает получить путь к рабочему столу (SHGetSpecialFolderPath) и сравнить со строкой из ини-файла, после чего присвоить правильное значение root?
← →
igorium © (2012-05-11 14:04) [5]Мне кажется я чего-то недогоняю.
В дереве есть 2 переменные - root и path.
Root - это каталог, с которого показывается дерево
Path - Это каталог, который активен.
У меня Root = rfDesktop всегда.
Меняется только Path.
Dimka Maslov
Это очень близко к тому, что я хочу.
Спасибо.
Буду использовать эту функцию и если оказывается Рабочим столом, то просто не буду задавать значение Path.
← →
Медвежонок Пятачок © (2012-05-11 14:13) [6]ну пипец.
и если оказывается Рабочим столом, то просто не буду задавать значение Path.
если в ини записана строка равная полученному при старте пути к столу, зен рут = rfDesktop
← →
igorium © (2012-05-11 14:19) [7]Медвежонок Пятачок
Зачем мне задавать рут, если он и так = rfDesktop.
Рут НЕ меняется.
У меня дерево всегда рисуется от рабочего стола.
Но активная папка может быть любой.
Сейчас у меня так, что если я сохраняю Путь в ини-файл, то при открытии ини-файла и обратном изменении Путь = значение из ини-файла в случае, если указан рабочий стол, то у меня активная папка становиться НЕ "Рабочий стол" (root) (по сути виртуальная папка), а вполне себе физическая папка, расположенная по адресу С:\Documents and Settings\1234\Рабочий стол\.
С учетом того, что root у меня по прежнему равен Рабочему столу, то выглядит это странно - Рабочий стол в Рут и еще один рабочий стол, который активен.
← →
Медвежонок Пятачок © (2012-05-11 14:27) [8]Рут НЕ меняется.
а у меня он меняется?
← →
igorium © (2012-05-11 15:01) [9]А зачем тогда
зен рут = rfDesktop
← →
Медвежонок Пятачок © (2012-05-11 15:11) [10]пипец два раза.
просто потому чтобы перед элс было что-то.
сохраненный путь равен текущему пути до стола?
да! - нихрена не делаем.
нет? - делаем то что делал раньше
← →
igorium © (2012-05-12 13:22) [11]Медвежонок Пятачок
Согласен.
Так я ж так и писал:
> Буду использовать эту функцию и если оказывается Рабочим
> столом, то просто не буду задавать значение Path.
В любом случае меняется ТОЛЬКО Path. Root всегда остается прежнем и не меняется в программе.
В любом случае, спасибо за долготерпение и желание помочь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.074 c