Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TListView | загрузка и сохранение [D7, WinXP]


.ruslan ©   (2005-08-10 22:32:00) 

Здравствуйте!
Подскажите пожалуйста, как сохранить содержимое компонента TListView в файл, и загрузить из файла в компонент. Если не сложно помогите...


.ruslan   (2005-08-11 13:26:00) [1]

Все сделал, всем спасибо!


.ruslan   (2005-08-11 11:27:00) [2]

Все сохраняет, буду разбираться с загрузкой...


begin...end   (2005-08-11 11:15:00) [3]

> Defunct ©   (11.08.05 00:49) [4]

> constAListView: TListView

Это зачем так?


Defunct   (2005-08-11 11:13:00) [4]

.ruslan ©   (11.08.05 11:04) [6]

> but expression of type 'TAction' found

А что вы ему скармливаете?
С TListView код проверен.


.ruslan   (2005-08-11 11:06:00) [5]

Наиль ©, созраняет только первый столбец, как же быть с остальными?


.ruslan   (2005-08-11 11:04:00) [6]

...
if AListView.Items.Count = 0 then exit;
...


вот на этой строку происходит ошибка Statement expected, but expression of type 'TAction' found


Наиль   (2005-08-11 00:56:00) [7]

C сохранением SubItems
    begin
       Add( AListView.Items[i].Caption );
        Add( AListView.Items[i].SubItems.CommaText );
    end;
    ...
   for i := 0 to Count - 1 do
    With AListView.Items.Add do begin
       Caption := Strings[i*2];
       SubItems.CommaText:=Strings[i*2+1];
    end;


Defunct   (2005-08-11 00:49:00) [8]

Наиль ©   (10.08.05 23:19) [3]

хехе ;>

> .ruslan ©   (10.08.05 23:18) [2]
В общем-то, рабочий пример написать не сложно. Но только, SubItems вы будете сохранять и восстанавливать самостоятельно по аналогии.

procedure SaveListViewToFile( const AListView: TListView; const AFileName: String);
var
  i : integer;
begin
  if AListView.Items.Count = 0 then exit;

  with TStringList.Create do
  try
     for i := 0 to AListView.Items.Count - 1 do
     begin
        Add( AListView.Items[i].Caption );
     end;
     SaveToFile( AFileName )
  finally
     free
  end
end;

procedure LoadListViewFromFile( const AListView: TListView; const AFileName: String);
var
  i : integer;
begin
  AListView.Items.Clear;
  if not FileExists( AFileName ) then exit;

  with TStringList.Create do
  try
     LoadFromFile( AFileName );

     for i := 0 to Count - 1 do
     begin
        AListView.Items.Add.Caption := Strings[i];
     end;

  finally
     free
  end
end;


пример использования:

  SaveListViewToFile( ListView1, 'c:\lv.txt' );
  LoadListViewFromFile( ListView1, 'c:\lv.txt' );


Наиль   (2005-08-10 23:19:00) [9]

Я тоже всегда ошибаюсь в этом месте
for i := 0 to LV.Items.Count -1do


.ruslan   (2005-08-10 23:18:00) [10]

ээ.. всё бы прекрасно, но дело в том, что я начинающий в Delphi, и этот пример вреде как не покатит :(


Defunct   (2005-08-10 22:35:00) [11]

for i := 0 to LV.Items.Count do
   begin
      < сохраняем >
   end

while not Eof( F ) do
  begin
    LI := LV.Items.Add;
    < загружаем очередной LI>
  end;


?


Наверх

Титульная страница Поиск, карта сайта Написать письмо