Вылетает ошибка в свойстве «SelectedFolder.IsFolder» компонента «ShellListView»

Рейтинг: 0Ответов: 1Опубликовано: 19.01.2015

Доброе время суток.

Для вывода содержимого директорий использую компонент ShellListView.
Для реакции программы только на выделенные файлы использую код:

  procedure TForm1.ShellListViewClick(Sender: TObject);  
  begin  
     if not(ShellListView.SelectedFolder.IsFolder) then  
     begin  
       {перенос наименования выделенного файла в StrinGrid}  
     end;  
  end;

Код отрабатывет нормально.
Но если в этом компоненте случайно нажать лев. кнопку мышки на пустую область, выскакивает:

«Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0046FDCF in module 'Project1.exe'. Read of address 0000000C'. Process stopped. Use Step or Run to continue.»

Кто-нибудь с таким сталкивался?

Спасибо.

Ответы

▲ 2Принят

Если выделения нет, то SelectedFolder будет nil. Правильно так:

if (ShellListView.SelectedFolder<>nil)
  and not(ShellListView.SelectedFolder.IsFolder) then
begin
  {перенос наименования выделенного файла в StrinGrid}  
end;