Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неверный корень в ShellTreeView 
V
    Опции темы
Keeper89
Дата 30.8.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Доброго времени суток!

Меняю корень STV
user posted image
на новый
user posted image
Код

ShellTreeView1.Root := Edit1.Text;


Как видно - корень в последнем случае не "Новая папка", а "Documents and Settings". Судя по экспериментам такое происходит только в папках, содержащихся в этой самой Documents and Settings (как здесь - на Рабочем Столе).

Может кто-то сталкивался с этим?

Это сообщение отредактировал(а) Keeper89 - 30.8.2009, 23:19


--------------------
PM MAIL WWW   Вверх
Amphiluke
Дата 31.8.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 5
Всего: 112



Это не лекарство (так, хиленькая заплатка), но тем не менее работает...
Код
ShellTreeView1.Root := Edit1.Text;
ShellTreeView1.Items[0].Text := ExtractFileName(Edit1.Text);


Вообще, конечно, можно покопаться в исходнике, чтобы понять, откуда растут ноги у этого «бага».

Это сообщение отредактировал(а) Amphiluke - 31.8.2009, 09:09
PM   Вверх
Keeper89
Дата 1.9.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Заплатка это хорошо, но может есть какой-то другой способ?

Это сообщение отредактировал(а) Keeper89 - 1.9.2009, 13:31


--------------------
PM MAIL WWW   Вверх
MetalFan
Дата 2.9.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



есть:
1. переписать ShellTreeView, чтобы работало, как надо
2. отказаться от STV в пользу VirtualShellTree


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Keeper89
Дата 2.9.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Буду смотреть пока, что переписывать или поставлю заплатку, хотя ее тоже надо продумать - вариант Amphiluke подходит только для директорий, над общим решением надо думать.


--------------------
PM MAIL WWW   Вверх
Keeper89
Дата 4.9.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Сделал заплатку следующим образом:
Код

function GetObjectName(objectPIDL: PItemIDList): AnsiString;
  var
    FileInfo: TSHFileInfo;
  begin
    SHGetFileInfo(PAnsiChar(objectPIDL),
                  0, FileInfo, SizeOf(FileInfo),
                  SHGFI_PIDL or SHGFI_DISPLAYNAME);
    Result := FileInfo.szDisplayName;
  end;

procedure TForm1.STV1Change(Sender: TObject; Node: TTreeNode);
var
  tempRootLabel: AnsiString;
begin
  with STV1.Items.GetFirstNode do
  begin
    tempRootLabel := GetObjectName(STV1.SelectedFolder.AbsoluteID);
    if AnsiCompareStr(tempRootLabel,Text) = 0 then
      Text := tempRootLabel;
  end; 
end;

Если есть вариант лучше, буду рад услышать.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.