Drag'n'drop w listboxie

0

Jak zrobić coś takiego jak jest w Winampie że można przeciągać pozycje z listboxa w górę i w dół ??

0

Ustaw DragMode ListBox'a na dmAutomatic
i dopisz dwie procedurki w zdarzeniach OnDragOver i OnDragDrop:

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := (TListBox(Source).ItemIndex <> -1);
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  I: Integer;
begin
  with TListBox(Source) do
  begin
    if ItemIndex = -1 then Exit;
    I := TListBox(Sender).ItemAtPos(Point(X, Y), False);
    TListBox(Sender).Items.Insert(I, Items[ItemIndex]);
    Items.Delete(ItemIndex);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1