2

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

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

 end;

但我收到此错误:[dcc32 Error] Unit1.pas(10): E2137 Method 'AdvancedCustomDrawItem' not found in base class

4

1 回答 1

2

您不能覆盖该方法,因为它不存在。该OnAdvancedCustomDrawItem事件被触发CustomDrawItem,您可以覆盖该事件。它是这样声明的TCustomTreeView

function CustomDrawItem(Node: TTreeNode; State: TCustomDrawState;
  Stage: TCustomDrawStage; var PaintImages: Boolean): Boolean; virtual;

基本实现同时触发OnCustomDrawItemOnAdvancedCustomDrawItem事件。

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

于 2012-10-04T15:58:03.307 回答