Главная страница
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.023 c
3-20016
mikeee
2003-06-15 17:16
2003.07.07
Как узнать DBGrid.Columns


8-20175
lexa
2003-03-23 13:00
2003.07.07
Как заставить MediaPlayer распознать Mp3 файл?


7-20332
DimmanK
2003-04-22 19:57
2003.07.07
Консольное приложение тормозит в полноэкранном режиме


11-20023
Bartov
2002-10-28 13:50
2003.07.07
Ras and TAPI


6-20186
Tenrai
2003-04-04 06:11
2003.07.07
Новое окно при клике на ссылку в TWebBrowser