![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListView [D7, XP]
F@T@L_Err0r © (2007-09-25 14:26:00)попогите плиз.Я сохраняю файл в определенной мной структуре(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;
Сергей М. (2007-09-25 16:23:00) [1]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1190376310&n=18
Сказка про белого бычка)
{RASkov} (2007-09-25 16:19:00) [2]> Достаточно 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;
F@T@L_Err0r (2007-09-25 14:46:00) [3]Понятоно спасиба!!!
Palladin (2007-09-25 14:45:00) [4]а зачем тебе вообще эта строчка?
l := TListItem.Create(ListView1.Items);
что она делает то?
Германн (2007-09-25 14:45:00) [5]
> А как же мне тогда освободить l ?
А не надо ни создавать, ни освобождать. Достаточно l :=ListView1.items.add;
F@T@L_Err0r (2007-09-25 14:42:00) [6]А как же мне тогда освободить l ?
Palladin (2007-09-25 14:38:00) [7]так ты же сам в конце и удаляешь последний созданный итем
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:33:00) [8]записывает он правильно, я проверял открывал файл через блокнот...
Вот код записи:
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:27:00) [9]код записи показывай