Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2011, 15:58   #1
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию ListView

Добрый день! Подскажите как сохранить информацию из ListView2 на жёсткий диск а затем загрузить её в этой же программе в ListView3?

Сохраняю так:
fo:TfileStream;
fo := TFileStream.Create'C:\stream.vcl', fmcreate);
fo.WriteComponent(ListView2);
fo.Free;

Загружаю:
f: TFileStream;
f := TFileStream.Create('C:\stream.vcl', fmOpenRead);
f.ReadComponent(ListView3);
f.Free;
И при загрузке возникает ошибка
&&blad&& вне форума Ответить с цитированием
Старый 26.03.2011, 16:10   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А поточнее? Вы сохраняете TListView или информацию из TListView?
ReportCube вне форума Ответить с цитированием
Старый 26.03.2011, 16:18   #3
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию

Я сохраняю информацию
&&blad&& вне форума Ответить с цитированием
Старый 26.03.2011, 16:25   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

WriteComponent() сохраняет не информацию, а компонент, в том числе и его место среди других компонентов...
ReportCube вне форума Ответить с цитированием
Старый 26.03.2011, 16:27   #5
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию

А как тогда сохранить информацию?
&&blad&& вне форума Ответить с цитированием
Старый 26.03.2011, 16:31   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А откуда Вы берёте информацию, которую отображает TlistView?
ReportCube вне форума Ответить с цитированием
Старый 26.03.2011, 18:21   #7
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию

Информацию записываю по ходу выполнения программы(её пишет пользователь)
&&blad&& вне форума Ответить с цитированием
Старый 26.03.2011, 18:47   #8
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Я Вас подталкиваю к решению, но встречаю упорное сопротивление. Пользователь что-то там пишет, но для отображения информации Вы её как то упорядочиваете, например записываете в TLisView.Items[n], где она хранится в виде Item.Caption и в Item.SubItems. Могут быть приложены и объекты, содержащие в себе огромное количество другой информации, ссылок и тому подобное. Вы желаете эту информацию сохранить для передачи в другой TListView - так и сохраняйте эту информацию. Сам TListView использовать в качестве хранилища информации не верно, задача компонента отображать информацию и реагировать на действия пользователя. Если информации немного, то её можно целиком считывать из хранилища и хранить в TListView, а если её много, то лучше использовать виртуальный режим работы компонента. И то, и другое уже достаточно подробно обсуждалось на форуме. В любом случае - Вам следует сохранять только информацию, а не компоненты, отвечающие за интерфейс между пользователем и информацией.
ReportCube вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
ListView xWinDx Win Api 1 19.04.2010 17:51
ListView sht0p0r Помощь студентам 1 15.12.2008 23:33
ListView Drain Общие вопросы Delphi 3 13.02.2008 16:10