![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранение Id'шников в ListView [D7, Paradox]
ВиТ © (2005-01-07 18:18:00)Здравствуйте! У меня есть таблица с полями id и name.
Допустим, все name'ы я печатаю в листвью.
Вопрос: как наиболее простым способом мне хранить id'шник для каждого name?
ВиТ (2005-01-08 19:05:00) [1]
> sniknik © (08.01.05 14:32) [4]
Классный способ! Спасибо!!
sniknik (2005-01-08 14:32:00) [2]можно указатель data использовать как просто число, тебе же нужно простой интеджер сохранять, он как раз того же размера что указатель, тогда выделения памяти под переменную не нужно и освобождения тоже.
код у тебя кстати неправильный при создании указатель Data будет nil а указатель от nil приведенный к интеджеру... и куда по твоему 1-ца присвоится? (по идее значение должно уйти в "... nil ;)", считать его пробовал? а еще скорее вывалится с аксесс виолейшен)
вот так вот можно
добавление
Inc(Count); //в цикле естественно, тогда Count будет порядковым номером (ну или ID у тебя)
with ListView1.Items.Add do begin
Caption:= 'MyItem';
Data:= Pointer(Count);
end;
чтение (гденибудь в онселект)
Label2.Caption:= IntToStr(Integer(Item.Data));
ВиТ (2005-01-08 12:33:00) [3]
> Vlad © (07.01.05 23:04) [2]
> >ВиТ ©
> А разве метод AddItem не позволяет хранить любой TObject
> для каждого Item'a ?
> hint: В качестве TObject можно хранить и id-шник
Вот что нашел в мане: У каждого Item есть св-во Data
Specifies any application-specific data associated with the list item.
Delphi syntax:
property Data: Pointer;
И у меня даже заработало вот таким образом:
var
itm:TListItem;
begin
itm:=ListView1.Items.Add;
itm.Caption:='MyItem';
Integer(itm.Data^):=1;
...
Но ведь если я буду удалять\добавлять айтемы - мне придётся следить, чтобы у меня эти данные в памяти не затерялись?
Или они автоматически удаляться будут?
Vlad (2005-01-07 23:04:00) [4]>ВиТ ©
А разве метод AddItem не позволяет хранить любой TObject для каждого Item'a ?
hint: В качестве TObject можно хранить и id-шник
YurikGL (2005-01-07 22:14:00) [5]Можно создать динамический массив или TStringList и хранить в ячейках с одинаковым индексом в ListView name-ы а в StringList-е или динамическом массиве соответсвующий id-к.