0

我正在编写一个从 TListView 派生的组件,我想知道使用该组件的开发人员何时添加一列以便我做出反应。如何检测何时添加了新列?有活动吗?

4

2 回答 2

4

没有这样的事件,但是由于您是组件编写者,因此无论如何事件对您都是禁止的。事件适用于使用您的组件的开发人员。

通过发送控制lvm_InsertColumn消息来添加列。在后代控件中覆盖该消息处理程序:

procedure LVMInsertColumn(var Msg: TMessage); message lvm_InsertColumn;

实现它以调用继承的处理程序,然后做任何你想做的事情。

procedure TListViewDescendant.LVMInsertColumn(var Msg: TMessage);
begin
  inherited;
  // TODO: custom handling
end;
于 2013-05-21T12:23:06.413 回答
1

DelphiTListView控件不提供此类事件,并且底层 Windows 控件不提供通知。原因是您的程序员负责添加列。列只能通过调用Delphi 或通过向底层窗口Columns.Add发送消息来添加。LVM_INSERTCOLUMN

因此,您负责添加列,大概是通过调用Columns.Add. 通过调用 的方法路由添加列的所有代码Columns.Add,并在该点添加任何特殊处理。

于 2013-05-21T11:55:27.947 回答