Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.022 c
15-1190098085
Ega23
2007-09-18 10:48
2007.10.21
Посоветуйте технологию


1-1186647781
kudatsky
2007-08-09 12:23
2007.10.21
Вызов OutLook


1-1186483022
OlegM
2007-08-07 14:37
2007.10.21
Незакрываються динамически созданные Panel


15-1190121793
dimonf
2007-09-18 17:23
2007.10.21
Нужен программист Delphi + MSSQL (Москва)


15-1190563931
ProgRAMmer Dimonych
2007-09-23 20:12
2007.10.21
Поддскажите, плз, самое простое и быстрое решение...