如何覆盖AdvancedCustomDrawItem - TreeView

时间:2012-10-04 15:47:50

标签: delphi

我正在尝试覆盖AdvancedCustomDrawItem方法,因为我想让我的所有者TreeView 这是我的尝试:

type TTreeView=class (Vcl.ComCtrls.TTreeView )
  protected
  procedure AdvancedCustomDrawItem(
  Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
  var PaintImages, DefaultDraw: Boolean);override;

 end;

但是我收到了这个错误: [dcc32错误] Unit1.pas(10):E2137方法'AdvancedCustomDrawItem'在基类中找不到

1 个答案:

答案 0 :(得分:2)

您无法覆盖该方法,因为它不存在。从OnAdvancedCustomDrawItem触发CustomDrawItem事件,您可以覆盖该事件。在TCustomTreeView

中声明如下
function CustomDrawItem(Node: TTreeNode; State: TCustomDrawState;
  Stage: TCustomDrawStage; var PaintImages: Boolean): Boolean; virtual;

基础实现会触发OnCustomDrawItemOnAdvancedCustomDrawItem个事件。

如果您想通过这项工作获得任何目标,您需要查阅此控件的源代码。