TTreeNode中Text要显示名称,此节点还要保存一个主键(也是字符串)如何实现

KingOf007 2003-06-24 01:42:17
我想用->Data,但似乎是个指针,如果我改了变量的内容,指针指向的数据也会无效的,请大家帮帮忙
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingOf007 2003-06-24
  • 打赏
  • 举报
回复
原来是OnDeletion啊,谢谢,知道了
Siney 2003-06-24
  • 打赏
  • 举报
回复
具体你可以这样:
char* obj=new char[EC_OBJLEN];
memcpy(obj,id.c_str(),EC_OBJLEN);

TTreeNode* subnode=treeUnits->Items->AddChildObject(node,name,obj);
在添加node的时候就加入附加对象,obj是char*,

以后要用这个char*是可以这样

String id=String((char*)node->Data);

另外记得在OnDeletion时间中删除这个new的对象:

void __fastcall ::Deletion(TObject *Sender,
TTreeNode *Node)
{
char* obj=(char*)Node->Data;
delete [] obj;
}

----------------------------------
感谢您选用Borland产品,更多信息请前往Borland社区和新闻组查询:.......
KingOf007 2003-06-24
  • 打赏
  • 举报
回复
那样,我就不能用Items->Clear()了,只能遍历一遍,一个一个的删除啦?
有没有更简单的办法呢?
kingfish 2003-06-24
  • 打赏
  • 举报
回复
对,删除时要delete
KingOf007 2003-06-24
  • 打赏
  • 举报
回复
如果这样,最后删除节点,是不是也要删除这些
kingfish 2003-06-24
  • 打赏
  • 举报
回复
->Data = new char[n];

604

社区成员

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

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