Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #8  
Старый 23.09.2014, 19:35
HTTqp HTTqp вне форума
Новичок
 
Регистрация: 16.04.2014
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: -25
По умолчанию

Цитата:
Сообщение от poli-smen
В том то и смысл, что виртуальный listview никак не заполняется - он отображает не свои, а чужие данные.

Вот набросал пример отображения данных в виртуальном ListView найденными файлами:
Код:
var
  FileList: TStringList = nil; // Здесь будут наши данные для виртуального ListView

procedure TForm1.Button1Click(Sender: TObject);
var
  sr: TSearchRec;
begin
  // Если объекта с нашими данными ещё нет - создаём его, иначе очищаем его от старых данных:
  if not Assigned(FileList) then FileList := TStringList.Create else FileList.Clear;

  // Выполняем поиск и добавление имён файлов в FileList:
  if FindFirst('C:\Windows\System32\*.*', faAnyFile, sr) = NO_ERROR then
  try
    repeat
      if (sr.Attr and faDirectory) = 0 then // Если очередной найденный элемент это файл
      begin
        FileList.Add(sr.Name); // Добавляем его в наш внутренний список
      end;
    until FindNext(sr) <> NO_ERROR;
  finally
    FindClose(sr);
  end;

  // Теперь просто указываем виртуальному ListView сколько ему нужно будет отображать элементов:
  ListView1.Items.Count := FileList.Count;
  ListView1.Invalidate; // И на всякий случай обновляем его
end;

// Этот метод будет автоматически вызываться для каждого элемента, который
//   нужно отобразить в виртуальном ListView
// Естественно свойство OwnerData у ListView должно быть True - что указывает
//   на "виртуальность" ListView.
procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
begin
  if Assigned(FileList) and (Item.Index < FileList.Count) then
  begin
    Item.Caption := FileList[Item.Index];
  end;
end;

а что если в этом месте


// Выполняем поиск и добавление имён файлов в FileList:
if FindFirst('C:\Windows\System32\*.*', faAnyFile, sr) = NO_ERROR then
try
repeat
if (sr.Attr and faDirectory) = 0 then // Если очередной найденный элемент это файл
begin
FileList.Add(sr.Name); // Добавляем его в наш внутренний список
//ВОТ ТУТ
end;
until FindNext(sr) <> NO_ERROR;
finally
FindClose(sr);
end;


надо добавить что то но в следующий столбец как это организовать?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:46.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025