Цитата:
Сообщение от 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: пользуемся тегами для формления кода!