AGB  ·  Datenschutz  ·  Impressum  







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

OnMouseUp - Maus beim bewegen loslassen

Ein Thema von gr-ha · begonnen am 27. Nov 2007 · letzter Beitrag vom 27. Nov 2007
Antwort Antwort
gr-ha

Registriert seit: 27. Nov 2007
5 Beiträge
 
#1

OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 17:45
Hallo,

ist es möglich im OnMouseUp-Ereignis festzustellen, ob die Maustaste in der Bewegung losgelassen wurde oder aus dem Ruhestand?
Ich kann ein Objekt in meinem Programm mit der Maus bewegen. Jetzt möchte ich aber, wenn man die linke Maustaste in der Bewegung loslässt, dass sich das Objekt weiterbewegt (man gibt sozusagen Anschwung), daher die Frage!

Gruß, gr-ha
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 17:53
Eine Möglichkeit wäre, in dem Moment, wo du beginnst mit Schieben, eine Variable auf True zu setzen. Wenn die Taste losgelassen wird und die Variable ist True, dann wandert das Ding eben weiter
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
gr-ha

Registriert seit: 27. Nov 2007
5 Beiträge
 
#3

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 17:56
aber es soll ja nur weiterwandern, wenn man die maustaste direkt beim bewegen loslässt.
wenn man drückt, bewegt, kurz wartet und loslässt, dann soll es sich nicht weiterbewegen!
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 17:59
dann beim Anhalten die Variable wieder auf False setzen. Praktisch eine kleine Logik aufbauen. Sooo schwer ist das sicher nicht
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
gr-ha

Registriert seit: 27. Nov 2007
5 Beiträge
 
#5

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 18:01
Bloß wie kann ich festlegen, was beim anhalten passiert?
gibts da ein ereignis für?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 18:07
Mir fällt da auf die Schnelle noch eine "Timer-Lösung" ein:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private-Deklarationen }
    FIsMoving: Boolean;
    FLastPos: TPoint;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FLastPos := Mouse.CursorPos;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  FIsMoving := (Mouse.CursorPos.X <> FLastPos.X) or (Mouse.CursorPos.Y <> FLastPos.Y);
  FLastPos := Mouse.CursorPos;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer1.Enabled := false;
  if FIsMoving then
    ShowMessage('Schwuppdi!')
  else
    ShowMessage('Möööp');
end;

end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 18:15
Die Zeit der letzten Bewegung merken, sollte doch auch gehen.
Die Mausbewegung ist doch auch nur ein diskretes Ereignis. Da musst du irgendwie mit Zeiten arbeiten.

Edit: Ohne Timer dann vielleicht so
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  stampx:=x;
  stampy:=y;
  stamp:=gettickcount;
end;


procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const output:array[boolean] of string=('Stillstand','Bewegung');
      limit=2;
var speed:double;
    divstamp:cardinal;
begin
  divstamp:=gettickcount-stamp;
  if divstamp=0 then
    speed:=limit*50
  else
    speed:=sqrt(sqr(stampx-mouse.CursorPos.X)+sqr(stampy-mouse.CursorPos.y))/(divstamp);
  edit1.text:=floattostr(speed)+' '+output[speed>limit];
end;

end.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
gr-ha

Registriert seit: 27. Nov 2007
5 Beiträge
 
#8

Re: OnMouseUp - Maus beim bewegen loslassen

  Alt 27. Nov 2007, 19:25
vielen Dank, werd ich mir mal anschauen.
  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 02:18 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