我正在编写一个来自TListView的组件,我想知道使用此组件的开发人员何时添加一列,以便我能做出反应。如何检测添加新列的时间?有事件吗?
答案 0 :(得分:4)
没有这样的事件,但由于您是组件编写者,无论如何事件都是禁止的。事件是为开发人员使用您的组件。
通过发送控制lvm_InsertColumn
消息来添加列。覆盖后代控件中的消息处理程序:
procedure LVMInsertColumn(var Msg: TMessage); message lvm_InsertColumn;
实现它以调用继承的处理程序,然后执行任何操作。
procedure TListViewDescendant.LVMInsertColumn(var Msg: TMessage);
begin
inherited;
// TODO: custom handling
end;
答案 1 :(得分:1)
Delphi TListView
控件不提供此类事件,并且基础Windows控件不提供通知。原因是程序员负责添加列。只能通过在Delphi中调用Columns.Add
或通过向基础窗口发送LVM_INSERTCOLUMN
消息来添加列。
因此,您负责添加列,可能是通过调用Columns.Add
来完成的。通过调用Columns.Add
的方法路由所有添加列的代码,并在此时添加任何特殊处理。