Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Virtual ListView


Автор: Ak47black 29.3.2007, 20:46
С Delphi даеться пример Virtual ListView.
Все-бы хорошо ,но при просмотре директории где храняться файлы большого объёма, например 5Gb ,то эти файлы выводяться размером по 1kb.
Пробовал поменять все Integer на Int64, но безуспешно.
Переполнение я как понимаю в самом коде программы не происходит, так как если-бы происходило переполнение ,то они-бы невесили по 1kb.
Значит гдето вне програмы, только где и как исправить код что-бы он неврал  smile .
Буду рад любой помоши.

Автор: MetalFan 30.3.2007, 09:21
не нашол у себя файл 5Гб, тестил на 4 с копейками. да, "округляет" до 1 Кб)
что меняем:
Код

  TShellItem = record
    FullID,
    ID: PItemIDList;
    Empty: Boolean;
    DisplayName,
    TypeName: string;
    ImageIndex: Integer;
    Size: Int64; // ватэта
    Attributes: Integer;
    ModDate: string;
  end;
....
procedure TForm1.CheckShellItems(StartIndex, EndIndex: Integer);
...
   Size :=  (FileData.nFileSizeHigh shl 32) +  FileData.nFileSizeLow; //
...

procedure TForm1.ListViewData(Sender: TObject; Item: TListItem);
...
    if not IsFolder(FIShellFolder, ID) then
      Item.SubItems.Add(Format('%dKB', [(Size+1023) div 1024])) //
...


у меня заработало)

Автор: Ak47black 30.3.2007, 12:45
Всетакие тут этот код ведёт в правильную сторону, но
тут чтото неправильно
Код

Size :=  (FileData.nFileSizeHigh shl 32) +  FileData.nFileSizeLow;

Файлы больше размером 256^4=4294967296 почемуто ненаходит правильно.

Автор: Ak47black 30.3.2007, 16:51
Проблема нерешена до конца.

Автор: Ak47black 30.3.2007, 18:13
smile Я тут смотрю что дело не в в том что я немогу сделать, а в том что тут Micro$ost неправильно сделала
Код

FileData.nFileSizeHigh и FileData.nFileSizeLow


Добавлено через 8 минут и 10 секунд
Ну кроме как в обход я нечего ненашол.
Если что-нибудь, кто-нибудь сможет предложить, то пишите.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)