...move items in a listbox?

Author: Hammer

Category: VCL

// Move an item up

procedure LbMoveItemUp(AListBox: TListBox);
var
  
CurrIndex: Integer;
begin
  with 
AListBox do
    if 
ItemIndex > 0 then
    begin
      
CurrIndex := ItemIndex;
      Items.Move(ItemIndex, (CurrIndex - 1));
      ItemIndex := CurrIndex - 1;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  
LbMoveItemUp(ListBox1);
end;

// Move an item down

procedure LbMoveItemDown(AListBox: TListBox);
var
  
CurrIndex, LastIndex: Integer;
begin
  with 
AListBox do
  begin
    
CurrIndex := ItemIndex;
    LastIndex := Items.Count;
    if ItemIndex <> -1 then
    begin
      if 
CurrIndex + 1 < LastIndex then
      begin
        
Items.Move(ItemIndex, (CurrIndex + 1));
        ItemIndex := CurrIndex + 1;
      end;
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  
LbMoveItemDown(ListBox1);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base