AGB  ·  Datenschutz  ·  Impressum  







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

Form.OnMouseMove

Ein Thema von egal · begonnen am 31. Mär 2006 · letzter Beitrag vom 5. Jul 2007
Antwort Antwort
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#1

Form.OnMouseMove

  Alt 31. Mär 2006, 12:52
Tja, vielleicht wurde dieses Thema schon mehrmals besprochen, aber ich bin irgendwie nicht fündig geworden.
Meine Form ist mit verschidenen Steuerelemeten überdeckt und wenn ich dieses Ereigniss Form.OnMouseMove versuche aufzurufen, dann klappt's nicht immer. Wie kann man da die Rheienfolge ändern? Zuerst sollte OnMouseMove von Form aufgerufen werden, nicht von Steuerelementen.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Form.OnMouseMove

  Alt 31. Mär 2006, 12:56
du meinst wenn du über ein Steuerelement fährst wird das Form.OnMouseMove nicht aufgerufen?

was genau willst du damit denn bezwecken?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Form.OnMouseMove

  Alt 31. Mär 2006, 13:01
Hallo,

Setze eine TApplicationEvents Komponente auf deine Form und ueberpreufe im OnMessage Ereignis
die Nachrichten auf WM_MOUSEMOVE.

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if (Msg.message = WM_MOUSEMOVE) then
   begin
     Caption := Format('%d:%d', [Mouse.CursorPos.X, Mouse.CursorPos.Y]);
    end;
end;
Thomas
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#4

Re: Form.OnMouseMove

  Alt 31. Mär 2006, 13:15
Zitat von Angel4585:
du meinst wenn du über ein Steuerelement fährst wird das Form.OnMouseMove nicht aufgerufen?
ja genau.
Ich habe einfach ein Problem mit einem Steuerelement, der reagiert nicht(Handle kaputt).
Und ich wollte mit der Mausbewegung dieses Steuerelement wieder aktivieren.
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#5

Re: Form.OnMouseMove

  Alt 31. Mär 2006, 13:21
Zitat von toms:
Hallo,

Setze eine TApplicationEvents Komponente auf deine Form und ueberpreufe im OnMessage Ereignis
die Nachrichten auf WM_MOUSEMOVE.

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if (Msg.message = WM_MOUSEMOVE) then
   begin
     Caption := Format('%d:%d', [Mouse.CursorPos.X, Mouse.CursorPos.Y]);
    end;
end;
danke, probiere gleich aus.
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#6

Re: Form.OnMouseMove

  Alt 31. Mär 2006, 13:38
jo, mit ApplicationEvents hat's wunderbar geklappt.
  Mit Zitat antworten Zitat
Mikro

Registriert seit: 28. Jun 2007
43 Beiträge
 
#7

Re: Form.OnMouseMove

  Alt 5. Jul 2007, 17:18
Hi,

ich versuche sowas wie einen Bildschrimschoner zu bauen, zumindest ist das Prinzip gleich. Einfach, wenn die Maus nicht mehr bewegt wird, soll nach 1sek oder so irgendwas passieren. WOllte das mit dem OnMouseMOve und einem Timer machen, aber der setzt sich, sobald die Maus einmal bewegt wurde...
hatte das hier:
Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
     form2.close;
end;

procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
     timer1.interval:=6000;
end;
Also jedesmal, wenn die Maus bewegt wird, soll der Interval des Timers hochgesetzt werden, so dass er gar nciht ans Ende kommt. Aber das interessiert den Timer wohl im Betrieb nicht. Jmd ne andere Idee?
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Form.OnMouseMove

  Alt 5. Jul 2007, 17:43
Hi,

eventuell ist ja MSDN-Library durchsuchenGetLastInputInfo was für dich:
Wie lange keine Benutzereingaben mehr erfolgt sind

EDIT: hast du es schon mal so versucht?
Delphi-Quellcode:
procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  timer1.Enabled:= false;
  timer1.Enabled:= true;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  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 03:41 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