Thema: Delphi TImage per Maus bewegen

Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

TImage per Maus bewegen

  Alt 2. Dez 2005, 15:02
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]
  Mit Zitat antworten Zitat