为什么我的treeview添加了node->Data=33619969用AnsiString((char*)(MainFrm->TreeView1->Selected->Data))读出来的为33619969_呢?

iris_zhu 2003-12-12 01:34:51
我的树中添加data的代码为
AnsiString *temp;
AnsiString TransformerID;
TTreeNode *LTR_Transf;
temp = new AnsiString;
memset(temp,0,Ls_TransformerID.Length());
memcpy(temp,Ls_TransformerID.c_str(),Ls_TransformerID.Length());
LTR_Transf->Data =temp;
...全文
23 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
踏岸寻柳 2003-12-12
用new或者不用new都可以的,殊途同归嘛!

TreeNode绑定的Data类型是void *,用new的话就是一个指针对象,不用new的话就用引用,和指针一样的。
  • 打赏
  • 举报
回复
iris_zhu 2003-12-12
我再研究研究有点糊涂啦!现在!
  • 打赏
  • 举报
回复
GoodAlan 2003-12-12
是呀,你不用也可以的
  • 打赏
  • 举报
回复
netsys2 2003-12-12
为什么要new 呢?


AnsiString Ls_TransformerID = Query1->Fields->Fields[0]->AsString;
  • 打赏
  • 举报
回复
iris_zhu 2003-12-12
to netsys2(抓住领头羊) ( ) 谢谢你!
33619969是从数据库里检索出来的!我必须要new新的ansistring吧?
while(Query->Eof)
{
temp = new AnsiString;
memset(temp,0,Ls_TransformerID.Length());
memcpy(temp,Ls_TransformerID.c_str(),Ls_TransformerID.Length());
LTR_Transf->Data =temp;
Query->Next();
}

我用AnsiString((char*)(MainFrm->TreeView1->Selected->Data))取出的str,其长度就是9了而不是8!

如果检索出的数据是7位的话就是正常的!
我该怎么解决呢?
  • 打赏
  • 举报
回复
netsys2 2003-12-12
AnsiString temp;
AnsiString TransformerID;
TTreeNode *LTR_Transf;
AnsiString Ls_TransformerID = "33619969";
temp = Ls_TransformerID;
LTR_Transf->Data = &temp;
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ Builder
加入

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2003-12-12 01:34
社区公告
暂无公告