procedure TFrm_main.FlatBut_delClick(Sender: TObject);
begin
 If (ListBox1.SelCount < 0) then
  ShowMessage('请先选择要删除的仓库')
 else
  ListBox1.Items.Delete(ListBox1.SelCount);
   
end;这段代码应该没什么问题吧,但ListBox1里面有了item也被选中,删除的时候还是提示
请先选择要删除的仓库  就是只执行ELSE以前的代码,我调试了一下
ListBox1.SelCount = -1,这是为什么啊?

解决方案 »

  1.   

    设置ListBox1的MultiSelect属性为True。
      

  2.   

    procedure TFrm_main.FlatBut_delClick(Sender: TObject);
    begin
     If (ListBox1.ItemIndex< 0) then
      ShowMessage('请先选择要删除的仓库')
     else
      ListBox1.Items.Delete(ListBox1.SelCount);
       
    end;應該用ItemIndex
      

  3.   

    SelCount就是在MultiSelect为True时候才有效的。
      

  4.   

    spiderzzl(毛毛鱼)  这方法我也试了不行了  调试ListBox1.Items.Delete(ListBox1.SelCount);的时候 ListBox1.SelCount还是-1啊,可是我LISTBOX里面有了东西而且被选中了
      

  5.   

    ListBox1.Items.Delete(ListBox1.SelCount)也改成ListBox1.Items.Delete(ListBox1.ItemIndex)第一條記錄的itemindex為 0 ,依次……
      

  6.   

    procedure TForm1.Button3Click(Sender: TObject);
    begin
      if ListBox1.ItemIndex <> -1 then
        ListBox1.Items.Delete(ListBox1.ItemIndex)
      else
        ShowMessage('请先选择要删除的仓库');
      ListBox1.ItemIndex := -1;
    end;// 这个是删除一个Item的代码。
      

  7.   

    哈哈终于OK了 spiderzzl(毛毛鱼) 提供的这个方法差了一个地方 
    ListBox1.Items.Delete(ListBox1.SelCount);
    改成
    ListBox1.Items.Delete(ListBox1.ItemIndex);
      

  8.   

    procedure TFrm_main.FlatBut_delClick(Sender: TObject);
    begin
     If ListBox1.SelCount <= 0 then
      ShowMessage('请先选择要删除的仓库')
     else
      ListBox1.Items.Delete(ListBox1.SelCount);   
    end;
    你的代码我试了没出现你说的现象
    另外 MultiSelct 属性允许多选  ExtendedSeledt 属性允许使用Shift键与Ctrl键选择多个连续或不连续项