在Tlistview控件内容被修改(包括内容的添加,删除,及某项内容的改动,改动均由内部程序控制,Tlistview控件是只读的)后,给出提示,比如showmessage('已改动listview内容')
注意:是修改不是改变,不要给我说onchange方法里写东西,也不要给我说在onedited或onediting里,因为控件是只读的!
求解!!!

解决方案 »

  1.   

    对那个tlistview 做窗口子类化 ,监控是否指定的消息(改变的消息)
      

  2.   

    继承TlistviewTListView  重写继承属性 writeset事件
      

  3.   

    继承控件,自己在相关修改操作里添加个事件就行了
    只要一有修改,事件即被触发,然后事件里就showmessage('已改动listview内容')
      

  4.   

    不需要重新继承控件,只需要截获控件窗口过程就行了var
      OldListViewWndProc:TWndMethod;
      gbChanged: Boolean=False;procedure TForm1.FormCreate(Sender: TObject);
    begin
      OldListViewWndProc := ListView1.WindowProc;
      ListView1.WindowProc := ListViewWndProc;
    end;procedure TForm1.ListViewWndProc(var Msg: TMessage);
    begin
      case Msg.msg of
        LVM_SETITEMTEXT, LVM_DELETEITEM,LVM_DELETEALLITEMS,LVM_EDITLABEL:
           gbChanged:= True; 
      end;
      OldListViewWndProc(Msg);
    end;
    如果是重载draw方法再textout显示字符的话,那你没办法截到的,只能放弃