Panels (alTop) nach oben/unten verschieben
Hallo Wissende
Also nehmen wir an es sind 4 oder mehr Panels, die alle alTop ausgerichtet sind. Wie kann ich es nun realisieren, dass ich den 2. Panel per Drag & Drop an die 3. Stelle bekomme? Mit folgendem SourceCode kann ich die Panels nur von ganz oben nach ganz unten und umgekejrt ziehen, aber ich kann nicht ein panel zwischen 2 andere Panel ziehen. Wahrscheinlich, weil da FormDragOver nicht zum Einsatz kommt. Wie kann ich das aber realisieren, ohne mich auf eine bestimmte Anzahl von Panels begrenzen zu müssen, also dynamisch?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel1EndDrag(Sender, Target: TObject; X, Y: Integer); procedure FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then { Nur ziehen, wenn linke Maustaste gedrückt ist } with Sender as TPanel do { Sender als TFileListBox behandeln } sou BeginDrag(False); { Wenn ja, dann ziehen } end; procedure TForm1.Panel1EndDrag(Sender, Target: TObject; X, Y: Integer); begin if Target <> nil then begin (sender as TPanel).Top:=y; (sender as TPanel).Left:=x; (sender as TPanel).Update; end; end; procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin if Source is TPanel then Accept := True else Accept := False; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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