procedure TFormMain.N1Click(Sender: TObject);
 var listview:tlistview;
begin
//if sender is TListview then
//  begin
  // showmessage('is tlistview');
 //  if Listview1.Focused then
 //    listview1.DeleteSelected;
//  end;
listview:=tlistview(sender);
 if listview.Focused then
  listview.DeleteSelected;
end;
上面这样做的目的是为了让一个快捷菜单做为多个listview的共享菜单!我在TLISTVIEW控件的右击快捷菜单中写了上面的代码,运行出错,
提示Abstract error错误,请问如何解决?

解决方案 »

  1.   

    var
       lvTemp:TListView;
    begin
    if lvDoColor.Focused then
       lvTemp:=lv1
    else 
       lvTemp:=lv2;
    lvTemp.DeleteSelected;
      

  2.   

    var
       lvTemp:TListView;
    begin
    if lv1.Focused then
       lvTemp:=lv1
    else 
       lvTemp:=lv2;
    lvTemp.DeleteSelected;
      

  3.   

    procedure TForm1.N1Click(Sender: TObject);
    var
      tlvTemp: TListView;
    begin
      //TPopupMenu(TmenuItem(Sender).GetParentMenu).PopupComponent
      if TPopupMenu((Sender as TMenuItem).GetParentMenu).PopupComponent is TListView then
      begin
        tlvTemp := TListView(TPopupMenu((Sender as TMenuItem).GetParentMenu).PopupComponent);
      end
      else
      begin
        Exit;
      end;  if tlvTemp.Selected = nil then Exit;
      tlvTemp.Selected.Delete;
    end;
      

  4.   

    Delphi6 + WinXP 下调试通过!