Показать сообщение отдельно
  #2  
Старый 08.05.2014, 21:29
Тролль Тролль вне форума
Заблокирован
 
Регистрация: 07.05.2014
Сообщения: 11
Версия Delphi: 7, Kylix
Репутация: -1385
По умолчанию

Цитата:
Сообщение от HTTqp
Подскажите что не так, делаю загрузку файлов через виртуальный listview, в обработчике OnData пишу следующее:

Код:
procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
var
Attr:String;
SR:TSearchRec;
begin
Item.Caption:=(SR.Name);
Item.SubItems.Add(ExtractFileExt(SR.Name));
Item.SubItems.Add(IntToStr(SR.Size));{Размер файла}
        Item.SubItems.Add(TimeToDateFile(SR.FindData.ftCreationTime));{Время создания папки\файла}
        Attr:='----';
        if (sr.Attr and faArchive)<>0 then Attr[1]:='a';
        if (sr.Attr and faReadOnly)<>0 then Attr[2]:='r';
        if (sr.Attr and faHidden)<>0 then Attr[3]:='h';{Скрытый}
        if (sr.Attr and faSysFile)<>0 then Attr[4]:='s';{Системный}
        Item.SubItems.Add(Attr);{Атрибуты файла\папки}
        Item.SubItems.Add(SR.Name);


end;


Не код, а кошмар. "SR:TSearchRec;" - это просто обертка над структурой Win32_FIND_DATA. Имена файлов в ней сами собой не появятся, ее надо заполнять (см. FindFirst/FindNext), и точно не в функции OnData. Как у Вас организован поиск файлов?

Код:
"Item.Caption:=(SR.Name); // скобки не нужны
Item.SubItems.Add(ExtractFileExt(SR.Name));" // нет необходимости извлекать расширение, в структуре уже есть такой параметр, может быть сконвертирован с помощью StrPas.
MAD: пользуемся тегами для формления кода!
Ответить с цитированием