Also nach etwas nachdenken und rumprobieren habe ich das ganze (erstmal) so gelöst:
Delphi-Quellcode:
procedure TForm1.ParentMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TC.Tag:=TC.IndexOfTabAt(X,Y); //Tab was wir verschieben wollen
TC.Cursor:=crDrag;
end;
procedure TForm1.ParentMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var Von,Nach,Akt: Integer;
Temp: TRoom;
begin
Von:=TC.Tag; //Ursprungsposition
Nach:=TC.IndexOfTabAt(X,Y); //Dahin
if (Von<>Nach) and (Von<>-1) and (Nach<>-1) then //Andere Position und beide Positionen gültig
begin //Move Tab Von Nach
Temp:=Data[Von]; //Daten hinter dem Formular schieben
for Akt:=Von to Nach-1 do
Data[Akt]:=Data[Akt+1];
Data[Nach]:=Temp;
TC.Tabs.Move(Von,Nach); //Tab-Beschriftung schieben
end;
TC.Cursor:=crDefault;
end;
Das ganze sieht dann zwar nicht sooo spektakulär aus, aber es funktioniert