procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
  Change: TItemChange; var AllowChange: Boolean);
begin
    if trim(item.Caption)='' then
     allowchange:=false;
end;

解决方案 »

  1.   

    procedure TMainForm.ListView1Changing(Sender: TObject; Item: TListItem;
      Change: TItemChange; var AllowChange: Boolean);
    begin
      if ListView1.Checked then
      AllowChange:=False;
    end;
    好像是这样,我帮你找找。你最好再说清楚点。
      

  2.   

    如果光是处理选中情况,
    是不是用selecitem事件好一点?
      

  3.   

    我是说:比如在TListView中已经有一个选中的项目,当我点击TListView中空白的地方时,那个已选中的项目就成为不选中的,我想使它继续保持选中状态就如何处理。
      

  4.   

    我刚试,成的:
      AllowChange :=  Node<>nil;
      

  5.   

    可以这样:
        Allowchange := Item.Selected;
    事先必须要保证ListView1有一项是被选中的(否则就...)
      

  6.   

    不行的,OnChangeing事件是发生在项目改变前的,不是改变后的。
      

  7.   

    或者做一个过程,放在OnChange或其它合适的事件中:
    for i:=0 to lst.items.count-1 do 
    begin
      if lst.Items[i].Focused then
      begin
        lst.items[i].selected:=true;
        exit;
      end;
    end;