Текущий архив: 2007.10.21;
Скачать: CL | DM;
ВнизListView Найти похожие ветки
← →
F@T@L_Err0r (2007-09-25 14:26) [0]попогите плиз.Я сохраняю файл в определенной мной структуре(Record),но при загрузке файла в ListView удаляется последняя строчка и так до конца.Вот код открытия файла:
begin
try
l := TListItem.Create(ListView1.Items);
Assignfile(r,ExtractFilePath(Application.ExeName)+"data.dat");
reset(r);
while not eof(r) do
begin
l :=ListView1.items.add;
read(r,rr);
l.Caption :=rr.num;
l.SubItems.Add(rr.name);
l.SubItems.Add(rr.tel1);
l.SubItems.Add(rr.tel2);
l.SubItems.Add(rr.email);
l.SubItems.Add(rr.comment);
end;
closefile(r);
finally
l.Free;
end;
← →
Palladin © (2007-09-25 14:27) [1]код записи показывай
← →
F@T@L_Err0r (2007-09-25 14:33) [2]записывает он правильно, я проверял открывал файл через блокнот...
Вот код записи:
begin
Assignfile(r,ExtractFilePath(Application.ExeName)+"data.dat");
rewrite(r);
for q:=0 to ListView1.Items.Count-1 do
begin
rr.num := ListView1.Items[q].Caption;
rr.name := ListView1.Items[q].SubItems[0];
rr.tel1 := ListView1.Items[q].SubItems[1];
rr.tel2 := ListView1.Items[q].SubItems[2];
rr.email := ListView1.Items[q].SubItems[3];
rr.comment := ListView1.Items[q].SubItems[4];
write(r,rr);
end;
closefile(r);
← →
Palladin © (2007-09-25 14:38) [3]так ты же сам в конце и удаляешь последний созданный итем
try
l := TListItem.Create(ListView1.Items);
Assignfile(r,ExtractFilePath(Application.ExeName)+"data.dat");
reset(r);
while not eof(r) do
begin
l :=ListView1.items.add;
read(r,rr);
l.Caption :=rr.num;
l.SubItems.Add(rr.name);
l.SubItems.Add(rr.tel1);
l.SubItems.Add(rr.tel2);
l.SubItems.Add(rr.email);
l.SubItems.Add(rr.comment);
end;
closefile(r);
finally
l.Free;
end;
← →
F@T@L_Err0r (2007-09-25 14:42) [4]А как же мне тогда освободить l ?
← →
Palladin © (2007-09-25 14:45) [5]а зачем тебе вообще эта строчка?
l := TListItem.Create(ListView1.Items);
что она делает то?
← →
Германн © (2007-09-25 14:45) [6]
> А как же мне тогда освободить l ?
А не надо ни создавать, ни освобождать. Достаточно l :=ListView1.items.add;
← →
F@T@L_Err0r (2007-09-25 14:46) [7]Понятоно спасиба!!!
← →
{RASkov} © (2007-09-25 16:19) [8]> Достаточно l :=ListView1.items.add;
>F@T@L_Err0r
А еще лучше нечто вот так:while not eof(r) do
with ListView1.Items.Add do begin
read(r,rr);
Caption :=rr.num;
SubItems.Add(rr.name);
SubItems.Add(rr.tel1);
SubItems.Add(rr.tel2);
SubItems.Add(rr.email);
SubItems.Add(rr.comment);
end;
И не нужна вообще локальная переменная var l: TListItem;
← →
Сергей М. © (2007-09-25 16:23) [9]http://delphimaster.net/view/2-1190376310/
Сказка про белого бычка)
Страницы: 1 вся ветка
Текущий архив: 2007.10.21;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.049 c