请教高手,这是怎么回事?能帮我看一下程序吗?
TTreeNode *selnode,*node;
AnsiString seltext;
selnode = TreeView1->Selected;
if (selnode->Parent->Parent != NULL)
{
::MessageBox(Handle,"¶Ô²»Æð£¬¸Ã½ÚµãÒѾ­´¦ÓÚ\nÊ÷µÄ×îµ×²ã£¬Äú²»ÄÜ\nÔÙΪÆäÔö¼Ó×Ó½ÚµãÁË",
"¾¯¸æ",MB_OK + MB_ICONWARNING);
return;
}
else
{
if (selnode->HasChildren)
{
seltext = selnode->getFirstChild()->Text.Trim();
}
else
{
if (selnode->Parent != NULL)
seltext = "Ö÷¿ØÆ÷1";
else
seltext = selnode->getPrevSibling()->getFirstChild()->Text.Trim();
}
node = TreeView1->Items->AddChild(selnode,seltext);
}
selnode->Selected = false;
node->EditText();
每次运行时,总是报错,说访问内存出错,这是怎么回事?
问题点数:0、回复次数:4Top
1 楼thp(老滕)回复于 2004-08-04 08:55:07 得分 0
if (selnode->Parent->Parent != NULL)
应该是上面这行代码了,应首先判断selnode->Parent != NULL,要不然如果selnode->Parent为NULL的话,NULL->Parent肯定非法。Top
2 楼CCED136(夜林箭)回复于 2004-08-04 09:21:16 得分 0
呵呵,这句:
selnode = TreeView1->Selected; //重点
if (selnode->Parent->Parent != NULL)
楼主怎么能够肯定当前 TreeView 中一定有节点被选中呢???
应该加上:
if( TreeView1->Selected == NULL)
{
return;
}
selnode = TreeView1->Selected; //重点
if (selnode->Parent->Parent != NULL)
....
Top
3 楼CCED136(夜林箭)回复于 2004-08-04 09:23:14 得分 0
规律:
访问对象的属性和方法前,应该先判断对象本身是否合法有效。Top
4 楼myy()回复于 2004-08-04 09:42:41 得分 0
还有
if (selnode->HasChildren)
{
seltext = selnode->getFirstChild()->Text.Trim();
}
也不严谨,HasChildren是可以赋值的,==true也不见得有Children哦。
if (NULL!=selnode->getFirstChild())
{
seltext = selnode->getFirstChild()->Text.Trim();
}
Top
相关问题
- 大家帮我看一下,下面的asp程序,是怎么回事,
- 请大家帮看一下这是怎么回事啊!!??
- 请大家帮忙看一下是怎么回事?
- 帮忙看一下这个错误怎么回事?
- 大家看一下~这个程序是怎么回事!详情请进来看!
- 请帮我看一下下面的程序,为什么每次运行后总是显示“Null pointer assignment”,这是怎么回事?请说的详细一点。
- 请问使用DELPHI编写的程序在启动时报系统错误,提示如下:是怎么回事,大家帮忙看一下。
- 我在执行ExecuteNonQuery()的时候总是出错,是怎么回事啊?谁能帮我看一下程序,多谢了。
- 很怪的一件事,不知道怎么回事,大家帮忙看一下
- 十万火急:帮忙看一下,Invalid argument supplied for foreach()怎么回事




