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 Panel via Image verschieben (https://www.delphipraxis.net/88967-panel-via-image-verschieben.html)

hedie 23. Mär 2007 18:17


Panel via Image verschieben
 
Hallo

Ich möchte ein Panel auf einer Form mit der Maus Verschieben Lassen, das klappt auch ganz gut mit dem MouseDown Event und diesem Code

Delphi-Quellcode:
  // Mausereignisse abfangen
  ReleaseCapture;
  // mit TWinCotrol verschieben, $F012 verschiebt den Button
  TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
Doch auf dem Panel befindet sich ein Image und dieses Füllt fast das Ganze Panel
Nun möchte ich, dass man auch wenn man das Image "verschiebt" (anklicken und ziehen) das Panel Verschoben wird.

Wie muss ich das machen?

Wielen Dank

Grüsschen
Claudio

mkinzler 23. Mär 2007 18:21

Re: Panel via Image verschieben
 
Führe das doch in den Eventmethoden des Images durch.

hedie 23. Mär 2007 18:24

Re: Panel via Image verschieben
 
Ja aber dan verschiebt es das Image ;-)

mkinzler 23. Mär 2007 18:26

Re: Panel via Image verschieben
 
Die durchgeführte Aktion kannst du doch in der Methode selbst bestimmen.

hedie 23. Mär 2007 18:29

Re: Panel via Image verschieben
 
Ja aber ich weiss nicht wie ich den Code Anpassen muss, damit er anstelle des Objektes indem er benutzt wird das Panel verschiebt.

mkinzler 23. Mär 2007 18:31

Re: Panel via Image verschieben
 
Delphi-Quellcode:
Sender.Parent

bitsetter 23. Mär 2007 18:32

Re: Panel via Image verschieben
 
Hi,

Das onMouseDown Ivent vom Image würde ich das onMouseDown Ivent des Panels zuweisen und dann folgenden Code hinzufügen:

Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    ReleaseCapture;
  if Sender is TImage then
    TWinControl(TImage(Sender).Parent).Perform(WM_SYSCOMMAND, $F012, 0)
  else
    TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
end;

hedie 23. Mär 2007 18:34

Re: Panel via Image verschieben
 
Super klappt herrvoragend danke :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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