Hi,
ich habe ein Problem mit TTabControl.
Ich möchte die Tabs untereinander verschieben und die neue Reihenfolge an meine TList weiter geben.
Ich habe es wie folgt versucht, funktioniert aber nicht.
ich hoffe ihr könnt mir helfen.
Danke
ich habe ein Problem mit TTabControl.
Ich möchte die Tabs untereinander verschieben und die neue Reihenfolge an meine TList weiter geben.
Ich habe es wie folgt versucht, funktioniert aber nicht.
Code:
procedure TForm1.TabControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Drawing := True; end; procedure TForm1.TabControl1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Source : TObject; begin if Drawing then begin TabControl1.DragMode := dmAutomatic; // TabControl1DragOver(Sender, TabControl1.Tabs.Objects[TabControl1.TabIndex]; x, y, dsDragMove,); TabControl1DragDrop(Sender, TabControl1.Tabs.Objects[TabControl1.TabIndex], x, y); end; end; procedure TForm1.TabControl1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Drawing := False; { clear the Drawing flag } TabControl1.DragMode := dmManual; end; procedure TForm1.TabControl1DragDrop(Sender, Source: TObject; X, Y: Integer); var iNewPos : Integer; begin with TabControl1 do begin iNewPos := IndexOfTabAt(x, y); // ermittle Eintrag unter maus if iNewPos = -1 then // kein Eintrag darunter iNewPos := FMySheet.Count - 1; // also werde letzter FMySheet.Move(TabControl1.TabIndex, iNewPos); // Neue Position TabControl1.Tabs.Move(TabControl1.TabIndex, iNewPos); // Neue Position TabControl1.TabIndex := iNewPos; Statchanged := True; end; end; procedure TForm1.TabControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source = TabControl1; end;
Danke