![]() |
Panel Verschiebung mit Eigenschaft Align := alTop
Hallo,
Es liegen auf einem großen Panel 20 andere schmale Panel, alle mit der Eigenschaft Align := alTop Mit :
Delphi-Quellcode:
kann ich diese Panels beliebig verschieben.
procedure TFrmMain.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin if Sender is TPanel then if ssLeft in Shift then begin ReleaseCapture; (Sender as TPanel).Perform(WM_SYSCOMMAND,$F012,0); end; end; Jedoch bei ablegen bleiben Sie ganz einfach an diese Stelle liegen wo ich meine Maus loslasse, statt sich brav einzuordnen (wg. alTop). Wie schaffe ich das, dass ich ein Panel bei ablegen nahtlos zwischen zwei anderen Panel einordnet? Ich habe zuerst gedacht, das wg. Align := alTop wird das ohne weiteres gelingen, - funktioniert aber nicht. Für jede Hilfe wäre ich dankbar :-D Gruß Muchacho |
Re: Panel Verschiebung mit Eigenschaft Align := alTop
Hallo Muchacho,
du musst nach dem Ablegen des Panels ein erneutes Ausrichten der Controls beim Parent veranlassen:
Delphi-Quellcode:
Ich habe noch einen Aufruf der Methode BringToFront eingefügt, damit das bewegte Panel auch während des Verschiebens immer sichtbar ist und nicht hinter anderen Panels verschwindet. Als Auslöser für das Verschieben würde ich - wie im Quelltext angedeutet - eher MouseDown vorsehen, da es wirklich nur beim Drücken einer Maustaste ausgelöst wird.
procedure TFrmMain.PanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var Panel: TPanel; begin if Sender is TPanel then if ssLeft in Shift then begin ReleaseCapture; Panel := TPanel(Sender); Panel.BringToFront; // zu verschiebendes Panel nach vorne bringen Panel.Perform(WM_SYSCOMMAND,$F012,0); Panel.Parent.Realign; // Ausrichten der Controls beim Parent erzwingen end; end; Gruß Hawkeye |
Re: Panel Verschiebung mit Eigenschaft Align := alTop
Wunderbar Hawkeye!!! :-D
Du bist genial ! Gruß Muchacho |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 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