如果在一个窗体中使用dxDBTreeView没有问题,窗体关闭时一切正常。但如果这个设置这个窗体的Parent为一个PageControl(我使用Raize的),那么在这个Page关闭的时候dxDBTreeView连接的数据会全部自动删除!

被这个问题困扰了好久,只能将含dxDBTreeView的窗体直接创建显示,后来总觉得跟程序风格不一致,于是想修改dxDBTreeView的代码,又觉得也不方便,还要费时费力地去调试跟踪。

后来找了个折中的办法,在dxDBTreeView 的OnDeletion事件中:

.......tvClassDeletion(Sender: TObject; Node: TTreeNode);

begin
  inherited;
  if not FCanDeleteNode then
    Abort;
end;

如果直接Abort,则就无法调用dxDBTreeView的节点删除方法了。我使用了一个FCanDeleteNode ,这样在程序想调用节点删除方法的时候就将FCanDeleteNode 置为True就可以了。

 

不知道有没有人碰到过这种情况 ,有没有别的好方法。 

posted on 2012-06-05 07:44  garfieldtom  阅读(938)  评论(0编辑  收藏  举报