Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по 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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо