Главная страница
    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.48 MB
Время: 0.037 c
1-1084560173
Федя Мегатронов
2004-05-14 22:42
2004.05.30
Код исключения EidSockerError ???


1-1084565683
AlexCo_
2004-05-15 00:14
2004.05.30
Кодировка


3-1084091423
Romeo
2004-05-09 12:30
2004.05.30
Пробема с "INSERT INTO"


9-1075286593
ZAROLF
2004-01-28 13:43
2004.05.30
Редактировать JPEG рисунки


14-1084304416
proteste
2004-05-11 23:40
2004.05.30
Сам спросил сам ответил. Почему?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский