Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.07;
Скачать: CL | DM;

Вниз

Как сохранить содержимое ListBox   Найти похожие ветки 

 
Edvard ©   (2003-06-25 15:24) [0]

Всем привет! Подскажите, кто знает: при запуске проги заполняется ListBox1, содержимое его Items - это иконка(TIcon) + строка(String), затем я заполняю другой ListBox (ListBox2) содержимым из определенных записей ListBox1. Необходимая задача - это сохранить содержимое ListBox2 в файл, чтобы при следующем запуске проги оно опять появилось в ListBox2 (иконка + строка). Как это можно реализовать, как лучше сделать?


 
ZEE ©   (2003-06-25 15:33) [1]

sl:TStringList;
i:integer;
...
sl:=TStringList.Create;
for i:=0 to ListBox1.Items.Count-1 do
begin
sl.Add({добавляем номер иконки (в виде строки)+разделитель+строка});
sl.SaveToFile(...);
end;
sl.Free;
аналогично читаем:
...
sl.LoadFromFile(...);
...
//дальше надо расшифровать строку:
//до разделителя строка с номером иконки - преобразуем в число
//остальное (без разделителя) - сам текст
...


 
Edvard ©   (2003-06-25 15:57) [2]

>ZEE © (25.06.03 15:33)

насколько я понимаю, потом по номеру иконки я ее ищу в определенном месте на диске и загружаю в ListBox2 ?
А если такой путь не совсем приемлем, допустим, могу ли я создать файл в котором будут хранится и иконки и строки из ListBox1, а затем читать из него ?


 
Юрий Федоров ©   (2003-06-25 16:07) [3]

Ну какой путь - через поток (TFileStream) :
1. Пишем количество элементов
2. В цикле по элементам
2.1 пишем размер буффера i"той иконки
2.2 пишем саму иконку (SaveToStream)
2.3 пишем длину i"той строки
2.3 пишем строку
Считываем аналогично


 
Edvard ©   (2003-06-25 16:11) [4]

>Юрий Федоров © (25.06.03 16:07)

Юрий, спасибо, но если не трудно, можно на примере?


 
Юрий Федоров ©   (2003-06-25 16:20) [5]

>>Edvard © (25.06.03 16:11)
Сильно ломает писать пример(готового, сам понимаешь, нет). Если не работал с FileStream, смотри справку, а больше тут ничего непонятного вроде и нет


 
Edvard ©   (2003-06-25 16:31) [6]

ОК, тогда еще вопрос:) , я получаю элементы из одного ListBox в другой таким образом:

....
var
S: String;
Ic: TObject;
begin
....
S:=Form1.SListBox1.Items.Strings[count]; // получаем строку
Ic:=Form1.SListBox1.Items.Objects[count]; // получаем иконку
Form1.SListBox2.Items.AddObject(S, Ic); // заполняем второй ListBox
....
end


т.е. возращается не TIcon, а TObject. Как из него извлечь TIcon для
> 2.1 пишем размер буффера i"той иконки
?


 
Юрий Федоров ©   (2003-06-25 16:48) [7]

Иконка:=Ic as TIcon;


 
Edvard ©   (2003-06-25 16:54) [8]

Спасибо, буду разбираться:)



Страницы: 1 вся ветка

Текущий архив: 2003.07.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-20086
bmv
2003-06-23 13:18
2003.07.07
Загрузка большого объема данных


4-20356
BJValentine
2003-05-07 16:53
2003.07.07
CreateProcess


3-19959
RVL9
2003-06-11 20:46
2003.07.07
вопрос по картинкам в бд


11-20026
lamachok
2002-10-29 19:56
2003.07.07
формы


4-20353
vic_vm
2003-05-06 15:57
2003.07.07
Ошибка Error creating window device context