Witam
W internecie można znaleźć jak przeciągnąć element, między 2 listami:

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
If (Source is TListBox) then begin
  TListBox(Sender).Items.Add(TListBox(Source).Items.Strings[TListBox(Source).ItemIndex]);
  TListBox(Source).Items.Delete(TListBox(Source).ItemIndex);
end;

end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := True;
end;

Ale niestety nie wiem jak mam to "przerobić", aby była możliwość przeciągania elementów między listami nieokreślonymi, i aby przeciągnąć element z listy 1 do listy 2 oraz jednocześnie z listy 3 do listy 4 o tym samym indeksie.
Wiem, że trochę zawile napisałem, ale myślę, że będzie wiadomo o co chodzi.
Pozdrawiam Dragas