高手请进--指针的简单使用(online waiting)

olivertree 2003-01-19 08:11:28
我建了一个指针变量,以便将系统编码存在树节点的Data里面,然后在设备查询时使用,可是为什么只能找到一个系统编号?
mystruc *p=new mystruc;


for(int j=0;j<treedispQry->RecordCount;j++)
{
TreeID=mytree->Items->AddChild(Node,treedispQry->FieldByName("sysname")->AsString);
//存放id
if(TreeID!=NULL)
{
p->tID=treedispQry->FieldByName("syscode")->AsString;
TreeID->Data=p;
ShowMessage(p->tID);
}
treedispQry->Next();
}



syscode=((mystruc *)Node->Data)->tID;

treedispQry->Close();
treedispQry->SQL->Clear();
AnsiString sqlstr3;
sqlstr3.printf("select devcode,DevName\
from Dev\
where SysCode='%s'\
order by devcode",syscode);
treedispQry->SQL->Add(sqlstr3);
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinagy 2003-01-23
  • 打赏
  • 举报
回复
应该这样:



for(int j=0;j<treedispQry->RecordCount;j++)
{
TreeID=mytree->Items->AddChild(Node,treedispQry->FieldByName("sysname")->AsString);
//存放id
if(TreeID!=NULL)
{
mystruc *p=new mystruc; //每次增加节点时,都要重新申请空间
p->tID=treedispQry->FieldByName("syscode")->AsString;
TreeID->Data=p;
ShowMessage(p->tID);
}
treedispQry->Next();
}

cscer 2003-01-21
  • 打赏
  • 举报
回复
直接将字符串的指针赋给data属性就可以吧

用不着这么麻烦吧

好像不用释放资源
Billy_Chen28 2003-01-21
  • 打赏
  • 举报
回复
mystruc *p;
liye20000 2003-01-21
  • 打赏
  • 举报
回复
对呀,必须为自己的数据分配内存,当然了,最好还要自己去释放它
你可以用treeview 的AddChildObjcect函数,添加数据结构到节点中
NowCan 2003-01-20
  • 打赏
  • 举报
回复
mystruc *p=new mystruc; //这句不要
mystruc *p;//改为这个

for(int j=0;j<treedispQry->RecordCount;j++)
{
TreeID=mytree->Items->AddChild(Node,treedispQry->FieldByName("sysname")->AsString);
//存放id
if(TreeID!=NULL)
{
p=new mystruc; //<<<-------加
p->tID=treedispQry->FieldByName("syscode")->AsString;
TreeID->Data=p;
ShowMessage(p->tID);
}
treedispQry->Next();
}

OnNodeDelete事件里这样写。
mystruc *p;
p=(mystruct *)Node->Data;//这个Node不知道对不对,反正就是这个函数的一个参数。
delete p;

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧