Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: screenToClient liefert komische Werte

  Alt 6. Mai 2010, 22:46
ClientToScreen() und ScreenToClient() fragen die Mausposition nicht selbsttätig ab, das musst du schon noch selber tun. Dafür ist ja der Parameter vom Typ TPoint gedacht. Die Funktionen sind dazu gedacht, dass wenn man z.B. mit Mouse.CursorPos die Bildschirmkoordinaten erfragt hat, man aber die relativen Koords zu einem Formular braucht, diese mit
Delphi-Quellcode:
var
  formRelativePos: TPoint;
begin
  formRelativePos := Form1.ScreenToClient(Mouse.CursorPos);
bekommen kann. Umgekehrt liefern manche Ereignisse/Berechnungen auch relative Koordinaten, und wenn man dann aber die Bildschirmkoordinaten braucht, nimmt man sich die Gegenfunktion ClientToScreen() her. Der wichtige Teil ist aber, dass DU selber die Mausposition nicht übergibst, und deswegen keine sinnvollen Werte bekommst.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat