Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.03 c
3-1083912884
TransparentGhost
2004-05-07 10:54
2004.05.30
Перенос базы IB6.x ->> FB1.5 - есть ли где грабли?


3-1084034065
AVKAR
2004-05-08 20:34
2004.05.30
Lookup-поле


1-1084584669
Игорь
2004-05-15 05:31
2004.05.30
скажите как сделать так чтобы в форме1 при нажатии на Button


1-1084964951
SMT
2004-05-19 15:09
2004.05.30
Очистка свободного пространства экрана вокруг формы


1-1084608983
AlexZ_CRC
2004-05-15 12:16
2004.05.30
Fofm1.Button*.Caption:=massiv[i];





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский