Einzelnen Beitrag anzeigen

Nelphin

Registriert seit: 2. Feb 2009
Ort: Kaiserslautern
71 Beiträge
 
Turbo Delphi für Win32
 
#1

Bildschirmweites OnMouseMove gesucht

  Alt 21. Dez 2009, 15:10
hi,

folgendes ProblemBeispiel)

Delphi-Quellcode:
procedure TForm1.Panel4MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var p:TPoint;
begin
  if (ssright in Shift) then //schreibe ich hier "ssleft in Shift", dann bekomme ich die Koordinaten auch dann aktualisiert, wenn ich ausserhalb des Panels bin. Bei ssright in Shift stoppt die Aktualisierung an den Panelgrenzen.
  begin
    GetCursorPos(P);
    panel3.Caption:=inttostr(p.x)+' '+inttostr(p.y);
  end;
end;
also wie im Kommentar erklärt verhält sich die OnMouseMove Geschichte anders, wenn ich die linke Maustaste drücke als wenn ich die rechte drücke... das Verhalten bei gedrückter linker maustaste gefällt mir besser und so hätte ich es auch gern wenn ich die rechte gedrückt halte.
ich könnte das jetzt zwar über einen timer umgehen (denke ich) aber wollte fragen ob es auch eleganter geht.
Ideal wäre schlicht ein bildschirmweites OnMouseMove, das ich durch ein onmousedown im panel aktiviere. Bei der Suche habe ich nichts passendes entdeckt.

Danke schonmal
  Mit Zitat antworten Zitat