[C++ Builder] listbox zamiana elementów

Witam!

Piszę sobie prosty odtwarzacz plików i edytor playlisty. Nie mam pojęcia jak w listbox zamieniać ze sobą elementy miejscami. Chodzi o to, by dowolny element, można było przesunąć na dowolną pozycję w playliście. Pomysł jest taki by stworzyć przyciski << i >>, które by przesuwały zaznaczony element w górę i w dół.

void __fastcall TForm1::ButtonUpClick(TObject *Sender)