![]() |
Shape auf Panel oder Panel mit Muster
Hallo
Ich möchte gerne ein Panel mit einem Muster haben. Dazu habe ich mir ein Shape auf die Form gelegt. Da Die Panels Dynamisch erzeugt werden und es durchaus recht viele sein können, habe ich mir gedacht, das ich zum anzeigen des aktiven Panels, es Mit einem Muster belege. Das Shape soll dan immer an die Aktive Position verschoben werden. Die habe ich so gelöst.
Delphi-Quellcode:
Jedoch genügt bring to front nicht um es ÜBER dem Panel anzuzeigen.
Shape1.Left := Panel5.Left;
Shape1.Top := Panel5.Top; Shape1.Height := Panel5.Height; Shape1.Width := Panel5.Width; Shape1.Brush.Style := bsDiagCross; Shape1.Visible := True; Shape1.BringToFront; Hat da jemand eine idee wie ich das Über das Panel zeichnen kann? Mit diesem Code im MouseDown event Verschiebe ich das Panel
Delphi-Quellcode:
Wi kann ich dabei das Shape mitverschieben?
ReleaseCapture;
// mit TWinCotrol verschieben, $F012 verschiebt den Button TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0); Danke schonmal |
Re: Shape auf Panel oder Panel mit Muster
weise dem Shape das Panel als Parent zu, dann liegt es auf dem Panel
[Edit]Wenn das Shape dann aber das ganze Panel verdeckt, wird das OnMouseDown des Panels nicht mehr ausgeführt und du kannst das Panel nicht mehr verschieben. DAher müsstest du noch das hier einfügen:
Delphi-Quellcode:
Anstatt Panel1 nimmst du natürlich das aktive Panel :wink: [/Edit]
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Panel1MouseDown(Panel1, Button, Shift, X, Y); end; |
Re: Shape auf Panel oder Panel mit Muster
Hmmm gibts keine Lösung ohne Den Panel namen?
Kann man nicht senden an Parent oder so machen? |
Re: Shape auf Panel oder Panel mit Muster
Zitat:
Delphi-Quellcode:
procedure TForm1.PanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; if Sender is TPanel then TPanel(Sender).Perform(WM_SYSCOMMAND, $F012, 0) else TWinControl(Sender).Parent.Perform(WM_SYSCOMMAND, $F012, 0) end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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