Das war jetzt auch verkehrt. Der Code sieht jetzt so aus:
Delphi-Quellcode:
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true; //Source is TListBox;
end;
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
var
lbSource,lbSender : TListBox;
begin
lbSource := Source as TListBox;
lbSender := Sender as TListbox;
lbsender.Items.Add(lbSource.Items[lbSource.ItemIndex]);
lbSource.Items.Delete (lbSource.ItemIndex);
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button = mbLeft then with Sender as TListBox do begin
if ItemAtPos (Point (x,y),true) >= 0 then
BeginDrag (false);
end;
end;
Wieso geht das so nicht ? Gefordert ist : egal wie viele Listboxen da sind, jede Zeile aus einer soll in eine beliebige andere verschoben werden können.