AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mausbewegung

Ein Thema von Muellermilchtrinker · begonnen am 24. Aug 2010 · letzter Beitrag vom 25. Aug 2010
Antwort Antwort
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

Mausbewegung

  Alt 24. Aug 2010, 20:12
Delphi-Version: 2009
Hallo DP,

ich versuche gerade, dass wenn ich auf einem Panel die linke Maustaste gedrückt halte und dann die Maus bewege, dass dann die Bewegung regestriert wird.
Also wenn ich meine Maus 150 px bewege, dass dann der Wert zu einer Variable addiert wird.
Hoffe ihr könnt mir helfen.
Habs so versucht:
Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var xold,yold:integer;
begin
  xold := x;
  yold := y;
  RotateX := RotateX + xold-x;
  RotateY := RotateY + yold-y;
end;
Das Problem ist ja, dass der Wert immer geändert wird, von meinem xold/yold. Wie kann ich das schützen???
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

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

AW: Mausbewegung

  Alt 24. Aug 2010, 20:15
Hallo,

merke dir im OnMouseDown die aktuellen Mauskoordinaten und addiere sie im OnMouseMove.
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Mausbewegung

  Alt 24. Aug 2010, 20:24
Funktioniert danke.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Mausbewegung

  Alt 24. Aug 2010, 22:21
Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var xold,yold:integer;
begin
  xold := x;
  yold := y;
  RotateX := RotateX + xold-x;
  RotateY := RotateY + yold-y;
end;
Das hier kann gar nicht funktionieren, weil x/yold lokale Variablen sind. Du berechnest also RotateX = rotateX + X - X => RotateX = RotateX (Hinweis: Der Wert hier ändert sich nicht). Du müsstest hier wenn schon globalere Variablen nehmen (also entweder globale Variablen oder Form-Member).

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

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

AW: Mausbewegung

  Alt 24. Aug 2010, 22:27
Genau so habe ich es vorhin auch schnell zusammen getippt.
Nun kann ich die Lösung ja zeigen.
Angehängte Dateien
Dateityp: zip Mauskoordinaten.zip (4,9 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Mausbewegung

  Alt 25. Aug 2010, 00:03
Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var xold,yold:integer;
begin
  xold := x;
  yold := y;
  RotateX := RotateX + xold-x;
  RotateY := RotateY + yold-y;
end;
Das hier kann gar nicht funktionieren, weil x/yold lokale Variablen sind. Du berechnest also RotateX = rotateX + X - X => RotateX = RotateX (Hinweis: Der Wert hier ändert sich nicht). Du müsstest hier wenn schon globalere Variablen nehmen (also entweder globale Variablen oder Form-Member).

Bernhard
Das dieser Code gar nicht funktioniert hat nichts mit den lokalen Variablen zu tun.
Code:
Xold = x
Yold = y
Ok, dann schauen wir uns mal die nächsten Zeilen an
Code:
RotateX = RotateX + Xold - Xold => RotateX = RotateX
Wenn die Compilermagic hier richtig greift, dann wird daraus kein Code gemacht, weil ja eh nichts passiert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Mausbewegung

  Alt 25. Aug 2010, 07:47
Zitat:
Das dieser Code gar nicht funktioniert hat nichts mit den lokalen Variablen zu tun.
Sagen wir mal nicht nur. Selbst wenn der andere Fehler nicht wäre, würden die alten Werte sofort wegen des falschen Scopes vergessen
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 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