Für Anfänger empfehle ich die Sache mit den Schalter.
Und die andere Sache (Drag&Drop) ist nicht so einfach...
1. Stelle DragMode der Liste auf dmAutomatic.
2. Lege das Ereignis DragOver der ListBox an
Delphi-Quellcode:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
// AutoScroll und anzeigen wo der Eintrag hin soll
// ganz du ja später klären
// das ist das komplizierte daran
Accept := Source = ListBox1; // bist du eintrag von mir
end;
3. Lege das Ereignis DragDrop der ListBox an
Delphi-Quellcode:
procedure TForm1.PWListBox1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var iNewPos : Integer;
begin
with PWListBox1 do
begin
iNewPos := ItemAtPos(Point(x, y), true); // ermittle Eintrag unter maus
if iNewPos = -1 then // kein Eintrag darunter
iNewPos := Items.Count - 1; // also werde letzter
Items.Move(ItemIndex, iNewPos); // Neue Position
ItemIndex := iNewPos;
end;
end;
Lies die Hilfe noch mal dazu ...