• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Delphi 4中TTreeView的bug_Delphi

delphi 搞代码 7年前 (2018-08-09) 191次浏览 已收录 0个评论

假设我们要将某个结点treenode移动到另一结点AnItem上并做为AnItem的child,按照文档说明,只需这样做
  TreeNode.moveto(AnItem,nrAddChild);
但实际上,在Delphi 4中,假如anode原来没有child的话,这条语句将不做任何事情。折衷的办法是
  TempNode:=TopicTV.items.AddChild(AnItem,”);
  TreeNode.MoveTo(TempNode, naInsert);
  TempNode.free;
在Tipexplr程序的源码中,关于实现同样操作,它指出,Delphi的TTreeView有bug,并提供了自己的解决方法(见下),但这只能在Delphi 3中通过,在Delphi 4中,只能用我的上面的方法。
AttachMode := naAddChild; { Add tip as a child of category }

{ Note: Adding the temporary node is a work around to a bug }

http://www.gaodaima.com/65655.htmlDelphi 4中TTreeView的bug_Delphi

{ that exists in the TreeView component when moving a }
{ node to a another node that doesn’t have any children }

TempNode := TvwTips.Items.AddChild( TvwTips.DropTarget,’Temp’ );
try
  { Move the node in the tree view }
  TvwTips.Selected.MoveTo( TvwTips.DropTarget, AttachMode );

  { Now need to update the category of tip in the database }
  TblTips.DisableControls;
  try
    TblTips.Edit;
    TblTips[ ‘Category’ ] := TvwTips.DropTarget.Text;
    TblTips.Post;
  finally
    TblTips.EnableControls;
  end;

finally
  TempNode.Free; { Don’t forget to release the temp node }
end;

欢迎大家阅读《Delphi 4中TTreeView的bug_Delphi》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Delphi 4中TTreeView的bug_Delphi
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址