![]() |
Drag & Drop PageControl
Wie kann man die einzelnen TabSheets im PageControl untereinander vertauschen (Drag & Drop)?
Das Hauptproblem ist eignetlich das OnDragOver Ereignis, da ich nicht weiß, wie ich das TabSheet bewege. |
Vertauschen:
Code:
var
TS1, TS2: TTabSheet; Index: Integer; begin TS1 := AusgewähltesTabSheet; TS2 := MitDiesemTabSheetTauschen; Index := TS1.PageIndex; TS1.PageIndex := TS2.PageIndex; TS2.PageIndex := Index; end; |
Muß ja nicht vertauscht, sondern nur bewegt werden. Hab gedacht, es gibt ne Move Funktion, we bei der ListBox oder so was ähnliches.
Gruß |
Hi nochmal
Hab das jetzt wie folgt gelöst:
Code:
Gruß
private
eintrag:integer; procedure TForm1.PageControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i: integer; begin i:=PageControl1.IndexOfTabAt(x,y); If (i>-1)and(Button=mbLeft) then begin Eintrag:=i; PageControl1.BeginDrag (false); end; end; procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer); var i:integer; begin i:=PageControl1.IndexOfTabAt(x,y); If i > -1 then begin PageControl1.Pages[eintrag].PageIndex:=i; end; end; procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin If Source is TTabSheet then Accept:=true; end; |
Es gibt bei TPageControl zwar eine MoveTab-Methode, nur ist die dummerweise als private deklariert womit kein Zugriffsmöglichkeit vorhanden ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz