在listbox里面如何选定多条记录,同时按delete键时删掉那些选定的记录.望高手指教

解决方案 »

  1.   

    mutiselected设置为truefor i:=0 to listbox1.SelCount  do
       listbox1.DeleteSelected;
      

  2.   

    按delete键时删掉
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var i :integer;
    begin
    if key=vk_delete then
    begin
      for i:=0 to listbox1.SelCount-1  do
       listbox1.DeleteSelected;
    end;
    end;
      

  3.   

    sorry,上面写的有点问题!
    按delete键时删掉
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key=vk_delete then
       listbox1.DeleteSelected;//直接调用这个过程就行了
    end;
      

  4.   

    按delete键时删掉
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var i :integer;
    begin
    mutiselected设置为true
    if key=vk_delete then
    begin
      for i:=listbox1.SelCount-1 downto 0  do 
      begin
       if ListBox1.Selected[i] then 
       begin
         ListBox1.Items.Delete(i); //这里是一条条删除,相应增加你的代码。
       end;
      end;
    end;
    end;
      

  5.   

    procedure TForm1.FormShow(Sender: TObject);
    begin
        if adoquery1.RecordCount<>0 then
        begin
            while adoquery1.Eof<>true do
            begin
                listbox1.Items.Add(adoquery1.fieldbyname('a').AsString);
                adoquery1.Next;
            end;
        end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
        if adoquery1.RecordCount<>0 then
        begin
            for i:=0 to listbox1.Count-1 do
            begin
                if listbox1.Selected[i]=true then
                begin
                    adoquery2.Close;
                    adoquery2.SQL.Clear;
                    adoquery2.SQL.Add('delete from aa where a=:a');
                    adoquery2.Parameters.ParamByName('a').Value:=listbox1.Items.Strings[i];
                    adoquery2.ExecSQL;
                end;
            end;
        end;
        adoquery1.Close;
        adoquery1.Open;
        if adoquery1.RecordCount<>0 then
        begin
            listbox1.Items.Clear;
            while adoquery1.Eof<>true do
            begin
                listbox1.Items.Add(adoquery1.fieldbyname('a').AsString);
                adoquery1.Next;
            end;
        end;
    end;