Ошибка в модуле ShellCtrls.pas

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ошибка в модуле ShellCtrls.pas

Сообщение ssnakess » 09.09.2023 15:28:37

Ошибка в модуле ShellCtrls.pas из-за которой компонент TShellTreeView не может обработать корневой раздел в ОС Linux
при обращении ShellTreeView.Root:='/'
выдается исключение в строке 1002, которое сообщает, что / - не файл и далее выдается сообщение об шибке
Код: Выделить всё
    if TShellTreeNode(ANode).IsDirectory then
    begin
      //Note: the folder may have been deleted in the mean time
      //an exception will be raised by the next line in that case
      FShellListView.Root := GetPathFromNode(ANode)
    end
    else
    begin
      if not FileExistsUtf8(CurrentNodePath) then
        Raise EShellCtrl.CreateFmt(sShellCtrlsSelectedItemDoesNotExists,[CurrentNodePath]); 

Эта ошибка возникает из-за того, что корневой узел дерева не имеет признака IsDirectory
Код: Выделить всё
...
  if TShellTreeNode(ANode).IsDirectory then
...

исправляется вот так:
Код: Выделить всё
    if (TShellTreeNode(ANode).IsDirectory) or (ANode.Text='/') then
    begin

Хотя по хорошему надо лезть и искать функцию которая формирует дерево и разбираться, почему / не является директорией
Но даже такое исправление позволяет нормально отобразить список каталогов корневого раздела в ОС Linux
ssnakess
новенький
 
Сообщения: 47
Зарегистрирован: 24.09.2011 23:08:55

Re: Ошибка в модуле ShellCtrls.pas

Сообщение Lucifer » 12.09.2023 09:21:15

Версия? На Lazarus 2.2.6 и FPC 3.2.2 не воспроизводится. Все работает штатно
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: Ошибка в модуле ShellCtrls.pas

Сообщение ssnakess » 16.09.2023 13:35:00

Lucifer писал(а):Версия? На Lazarus 2.2.6 и FPC 3.2.2 не воспроизводится. Все работает штатно

версия лазаруса 2.2.6
fpc 3.2.2
ОС OpenSuse 15.4

Добавлено спустя 1 минуту 46 секунд:
Ошибка именно в Linux, я это писал в самом начале
в винде, все работает штатно
ssnakess
новенький
 
Сообщения: 47
Зарегистрирован: 24.09.2011 23:08:55


Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

Рейтинг@Mail.ru