Текущий архив: 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.45 MB
Время: 0.007 c