Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

TListView - как добавлять новые пункты?   Найти похожие ветки 

 
TGrigory ©   (2003-10-07 21:13) [0]

Юзаю сабж. Дык вот в книжке про него очень мало написанно, да и то про то куда кликать да сколько раз в визуальном строителе, а как программно в него добавит новый пункт нету :(
Попробовал юзать его методом научного тыка, но что-то не фурычит :(

Вообщем задача простая: нужно сохранять рекорды в файл, а при неободимости отображать эти рекорды в TListView. Использую код:

type thits = record
Score, Errors, Times: integer;
Name, Date, CRC: string[10];
end;

var
f: file of thits;
tmp: thits;
tmpli: TListItem;
begin
tmpli := TListItem.Create(lsttop.Items);
lstTop.Clear;
AssignFile(f,"tophits.hc");
Reset(f);
while not EOF(f) do
begin
read(f, tmp);
tmpli.Caption := tmp.Name;
tmpli.SubItems.Add(Format("%0:f",[tmp.Score / (tmp.Times/6000)]));
tmpli.SubItems.Add(IntToStr(tmp.Score));
tmpli.SubItems.Add(IntToStr(tmp.Errors));
tmpli.SubItems.Add(Format("%0:f", [(tmp.Times/100)]));
tmpli.SubItems.Add(tmp.Date);
lsttop.Items.AddItem(tmpli);
// tmpli.SubItems.Clear; <== если это есть то вообще ничего не происходит
end;
CloseFile(f);
end;


Проблемы такие:
1) Первое поле в ListView почему-то пустое
2) Все строчки одинаковые, хотя в файле записанны различные записи


 
Семен Сорокин ©   (2003-10-07 21:18) [1]

попробуй так:
with lsttop.Items.Add do begin
tmpli.Caption := tmp.Name;
tmpli.SubItems.Add(Format("%0:f",[tmp.Score / (tmp.Times/6000)]));
tmpli.SubItems.Add(IntToStr(tmp.Score));
tmpli.SubItems.Add(IntToStr(tmp.Errors));
tmpli.SubItems.Add(Format("%0:f", [(tmp.Times/100)]));
tmpli.SubItems.Add(tmp.Date)
end


 
Нурик ©   (2003-10-08 07:33) [2]

Измени код на этот и всё у тебя получиться:

while not EOF(f) do
begin
read(f, tmp);
tmpli:=lsttop.items.add; //создаешь строчку
tmpli.Caption := tmp.Name;
tmpli.SubItems.Add(Format("%0:f",[tmp.Score / (tmp.Times/6000)]));
tmpli.SubItems.Add(IntToStr(tmp.Score));
tmpli.SubItems.Add(IntToStr(tmp.Errors));
tmpli.SubItems.Add(Format("%0:f", [(tmp.Times/100)]));
tmpli.SubItems.Add(tmp.Date);
// lsttop.Items.AddItem(tmpli); -> это не нужно
// tmpli.SubItems.Clear; <== если это есть то вообще ничего не происходит
end;

P.S. и ещё вот эта строка у тебя на самом верху тоже не нужна:
tmpli := TListItem.Create(lsttop.Items)



Страницы: 1 вся ветка

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
14-65610
Izyum
2003-10-01 10:18
2003.10.20
Разве можно так пить?


1-65475
Ruslan Girichev
2003-10-09 13:41
2003.10.20
Как убрать кнопку из панели задач


4-65673
uncle
2003-08-16 02:11
2003.10.20
Обработка сообщений формы из её компонента.


1-65541
Vlad
2003-10-09 11:08
2003.10.20
Подскажите, как реализовать...


4-65662
sucer
2003-08-13 20:55
2003.10.20
Как узнать что программу пытаються запустить повторно?