![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по TreeView [D7, Win2k]
Рафик © (2004-11-26 08:35:00)Подскажите пожалута, у меня есть база состоящия из двух полей наименования и код, в дерево мне нужно вывести только наименование (наименование не является уникальным параметром) потом в дереве пользователь выбирает какое либо наименование и по нему должна выводиться информация, как мне определить код выбранного им наименования, ведь я ж не знаю какое он может выбрать.
Рафик (2004-11-26 11:11:00) [1]Так на клик мышки
Rouse_ (2004-11-26 11:07:00) [2]Эээ, не про то подумал...
node1.Data у тебя это что, как ты ее получаешь?
Rouse_ (2004-11-26 11:03:00) [3]> И почему то ID у меня всегда равна семи чтобы я не выделил.
потомучто Pointer(Id) - это указатель на ID и при следующем проходе цикла ты его затираешь этот самый ID.
Сделай вот так:
var
ID: array of Byte;
IDCount: Integer;
...
Inc(IDCount);
SetLength(ID, IDCount);
ID[IDCOunt - 1]:=DataModule2.ZKart.FieldByName('Kod').asinteger;
node1:=TreeView1.Items.AddChildObject(node,str,Pointer(ID[IDCOunt - 1]));
Рафик (2004-11-26 10:56:00) [4]Вот так я записываю
dl:=DataModule2.ZKart.RecordCount;
DataModule2.ZKart.First;
for dl1:=0 to dl-1 do
begin
str:=DataModule2.ZKart.FieldByName('Name').asstring;
id:=DataModule2.ZKart.FieldByName('Kod').asinteger;
node1:=TreeView1.Items.AddChildObject(node,str,Pointer(Id));
DataModule2.ZKart.Next;
end;
И вот так получаю
но самое интересное
id:=Integer(node1.Data);
И почему то ID у меня всегда равна семи чтобы я не выделил. Хотя цифры семь там и в помине нигде нету.
Rouse_ (2004-11-26 10:23:00) [5]> А как мне потом достать оттуда этот параметр!!!
ну тебе же показали:
> и соответственно получаешь ID
>
> ID := Integer(SameNode.Data);
Рафик (2004-11-26 10:22:00) [6]А как мне потом достать оттуда этот параметр!!!
Рафик (2004-11-26 09:56:00) [7]Спасибо
jack128 (2004-11-26 08:40:00) [8]сохроняй ID в поле Data.
TreeView.Items.AddChildObject(SameParentNode, SameDataSet.FieldByName('SameStrField').AsString, Pointer(SameDataSet.FieldByName('ID').AsInteger));
и соответственно получаешь ID
ID := Integer(SameNode.Data);