Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag & Drop PageControl (https://www.delphipraxis.net/489-drag-drop-pagecontrol.html)

Tpercon 30. Jul 2002 15:20


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.

jbg 30. Jul 2002 15:56

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;

Tpercon 30. Jul 2002 17:05

Muß ja nicht vertauscht, sondern nur bewegt werden. Hab gedacht, es gibt ne Move Funktion, we bei der ListBox oder so was ähnliches.

Gruß

Tpercon 30. Jul 2002 17:18

Hi nochmal

Hab das jetzt wie folgt gelöst:
Code:
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;
Gruß

jbg 30. Jul 2002 22:34

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 11:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz