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

Вниз

tree и Data   Найти похожие ветки 

 
dim- ©   (2004-05-12 16:13) [0]

Делаю так:

type mystrtype=record
       uin:string;
end;
...
procedure Tadmins.getExpandingItems(var node:ttreeNode);
var newnode:ttreeNode;
boss:mystrtype;
begin
   if node=nil then
   boss.uin:=""
   else begin
       boss.uin:=mystrtype(node.Data).uin;
   end;
   tree.Close;
   tree.CommandText:="Select * from users_id Where (grup="+#39+boss.uin+#39+")" ;
   tree.Open;
   if node<>nil then node.DeleteChildren
   else treeView1.Items.Clear;
   tree.First;
   while not tree.Eof do begin
       newnode:=treeView1.Items.AddChild(node,tree.FieldByName("name").asstring);
       boss.uin:=tree.FieldByName("uin").asstring ;
       NewNode.Data:=Pointer(boss);
       if tree.FieldByName("child").AsBoolean then
       newnode.HasChildren:=true;
       tree.Next;
   end;
end;

первый уровень делает нормально, а далее не возвращает (NewNode.Data ничего не возвращает)


 
Соловьев ©   (2004-05-12 16:54) [1]


> а далее не возвращает (NewNode.Data ничего не возвращает)

type
    Pmystrtype = ^mystrtype;

...
var
   boss: Pmystrtype;
begin
...
New(boss);
boss^.uin := tree.FieldByName("uin").asstring ;
NewNode.Data := boss;
...

И не забудь освободить память. Используй событие OnDeletion


 
Курдль ©   (2004-05-12 16:56) [2]

А кто такой tree.CommandText?


 
dim- ©   (2004-05-12 17:15) [3]

Соловьев © спасибо, работает, только строка возвращается не та которую помещаю. Помещаю "F3C91AE1-EBB3-45D0-AAF8-BF26C5E0B3FB" получаю "щ{Ж#0#$C...


 
Соловьев ©   (2004-05-12 17:20) [4]


> только строка возвращается не та которую помещаю

как считываешь?


 
dim- ©   (2004-05-12 17:24) [5]

boss^.uin:=mystrtype(node.Data).uin;


 
Соловьев ©   (2004-05-12 17:26) [6]


> dim- ©   (12.05.04 17:24) [5]

boss.uin:=Pmystrtype(node.Data).uin;


 
dim- ©   (2004-05-12 17:34) [7]

Чего то не получается

type pboss=mystrtype;
var newnode:ttreeNode;
boss:^pboss;
begin
   New(boss);
   if node=nil then
   boss.uin:=""
   else begin
       boss.uin:=pboss(node.Data).uin;
   end;
   tree.Close;
   tree.CommandText:="Select * from users_id Where (gruppa="+#39+boss.uin+#39+")" ;
   tree.Open;
   if node<>nil then node.DeleteChildren
   else treeView1.Items.Clear;
   tree.First;
   while not tree.Eof do begin
       newnode:=treeView1.Items.AddChild(node,tree.FieldByName("name").asstring);
       boss.uin:=tree.FieldByName("uin").asstring ;
       NewNode.Data:=boss;
       if tree.FieldByName("child").AsBoolean then
       newnode.HasChildren:=true;
       tree.Next;
   end;


 
Курдль ©   (2004-05-12 17:34) [8]

Есть разница между этими записями?
NewNode.Data:=Pointer(boss);
NewNode.Data:=Ptr(boss);
?


 
Соловьев ©   (2004-05-12 17:37) [9]


>  New(boss);
>    if node=nil then
>    boss.uin:=""
>    else begin
>        boss.uin:=pboss(node.Data).uin;
>    end;

Какого????
New перенеси за
newnode:=treeView1.Items.AddChild(node,tree.FieldByName("name").asstring);
var str_uin: string;
...
str_uin :=pboss(node.Data).uin;
...
tree.CommandText:="Select * from users_id Where (gruppa="+#39+str_uin+#39+")" ;
...


 
dim- ©   (2004-05-12 17:55) [10]

перенес без результата

   if node=nil then
   srt_pr:=""
   else begin
       srt_pr:=pboss(node.Data).uin;
   end;
   tree.Close;
   tree.CommandText:="Select * from users_id Where (gruppa="+#39+srt_pr+#39+")" ;
   tree.Open;
   if node<>nil then node.DeleteChildren
   else treeView1.Items.Clear;
   tree.First;
   while not tree.Eof do begin
       newnode:=treeView1.Items.AddChild(node,tree.FieldByName("name").asstring);
       New(boss);
       boss.uin:=tree.FieldByName("uin").asstring ;
       NewNode.Data:=boss;
       if tree.FieldByName("child").AsBoolean then
       newnode.HasChildren:=true;
       tree.Next;
   end;


 
Соловьев ©   (2004-05-12 18:06) [11]


> newnode:=treeView1.Items.AddChild(node,tree.FieldByName("name").asstring);
>        New(boss);
>        boss.uin:=tree.FieldByName("uin").asstring ;
>        NewNode.Data:=boss;  

я бы сделал по другому:

...
New(boss);
boss^.uin := tree.FieldByName("uin").asstring;
newnode:=treeView1.Items.AddChildObject(node,tree.FieldByName("name").asstring,boss);
...

И еще:
tree.CommandText:="Select * from users_id Where (gruppa="+#39+srt_pr+#39+")" ; // точно выбор детей?
gruppa - индекс родителя?


 
Соловьев ©   (2004-05-12 18:15) [12]

2 dim- ©
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=488
почитай... поучительно


 
dim- ©   (2004-05-12 22:44) [13]

Все-таки что то не так, строка не передается, может проблема в стринге?
Самое обидное что когда-то я такое делал, но найти не могу.


 
Vlad ©   (2004-05-12 23:19) [14]

type
 boss=^mystrtype;
 mystrtype=record
    uin:string;
 end;
....


 
dim- ©   (2004-05-13 08:38) [15]

спасибо Vlad



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

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

Наверх




Память: 0.5 MB
Время: 0.024 c
3-1084257796
Alex_xxx
2004-05-11 10:43
2004.05.30
ADO, BDE, FOX, dBASE: КОДИРОВКА ДОС/ВИН


8-1079617174
TrollXP
2004-03-18 16:39
2004.05.30
Winamp Playlist


3-1083821859
Mamed
2004-05-06 09:37
2004.05.30
get database name


1-1085001011
netVare
2004-05-20 01:10
2004.05.30
Как организовать поБИТовое чтение/запись из/в файла


3-1083660291
han-bratan
2004-05-04 12:44
2004.05.30
тип данных Мемо