Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi TImage per Maus bewegen (https://www.delphipraxis.net/58180-timage-per-maus-bewegen.html)

Matze 2. Dez 2005 14:02


TImage per Maus bewegen
 
Hier hat turboPASCAL gezeigt, wie man ein TImage mit der Maus zur Laufzeit verschieben kann. Dazu muss ein TImage auf einem Panel platziert werden, dessen Eigenschaft Autosize auf true gestellt werden muss.

Wie man am Code erkennen kann, wird nun nicht das Image verschoben, sondern das Panel. Doch da Autosize auf true steht, hat es denn Effekt, als ob das bloße Image verschoben wird. Ist die Eigenschaft BevelOuter des Panels auf bvNone sieht man vom Panel nichts mehr.

Delphi-Quellcode:
const
  SC_DRAGMOVE = $F012;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DoubleBuffered := True; // wird das Flackern nicht 100% beseitigen aber verbessern
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Shift = [ssLeft] then // ist linke Maustaste gedrückt, dann...
  begin
    ReleaseCapture; // "Maus an akt. Form binden"
    Panel1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0); // Panel verschieben
  end;
end;
[edit=Chakotay1308]Klassifizierung eingestellt. Mfg, Chakotay1308[/edit]
[edit=fkerber]Neu abgespeichert wg. Syntax-Highlighting. Mfg, fkerber[/edit]

Sharky 3. Dez 2005 10:15

Re: TImage per Maus bewegen
 
Hai,

eventuell sollte noch erwähnt werden das man mit dieser Methode nich nur ein Panel sonder auch Edits, StaticText usw. verschieben kann. Also alles was ein Handle hat.


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