Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
2-1329302821
LDV
2012-02-15 14:47
2013.03.22
добавление/удаление в/из TList


4-1261055064
Андрей Пл
2009-12-17 16:04
2013.03.22
Работа с СОМ портом, пакет AsyncPro406


15-1338536731
Дмитрий С
2012-06-01 11:45
2013.03.22
Зачем нужно готовиться к экзаменам?


3-1284795538
vhm
2010-09-18 11:38
2013.03.22
Подключение к MySQL


2-1346938341
stas
2012-09-06 17:32
2013.03.22
Создание экземпляра "неизвестного" класса,