Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#17

AW: WM_MOUSEMOVE in mehr als einem TControl verarbeiten.

  Alt 31. Mai 2017, 14:22
Okay, ich versuche es mit dem Mousemove des TForms! Danke!!
sagen wir mal dein Pfeil oben ist die Aktuelle X Position von der aktuellen CursorPosition dann sollte das ganz einfach so gehen.
Auf dein Beispiel angewendet.
Musst du aber auf dein Control hin noch ändern.. (Button1 wäre dann dein TGraphicControl)

Delphi-Quellcode:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  p: TPoint;
begin

  GetCursorPos(p); // p.x und p.y wären dann die aktuellen Position von deinen Pfeilen
  Windows.ScreenToClient(Handle, p); // <<< Form Handle deshalb "Windows.ScreenToClient" und nicht ScreenToClient
  image1.Canvas.TextOut(1,30,'Button: ' +inttostr(x)+','+inttostr(y) + ' '); // + ' ' damit überschüssige Zeichen gelöscht werden (Uninteressant für dein Problem)
  image1.Canvas.TextOut(1,1,'Image: '+inttostr(p.x)+','+inttostr(p.y)+ ' ');
end;
Wenn du nun auf den Button gehst ändert sich die X-Position vom Image Relativ zum Screen.
Sorry es war nicht ganz einfach zu verstehen was du eigentlich wolltest.

gruss

Geändert von EWeiss (31. Mai 2017 um 14:55 Uhr)
  Mit Zitat antworten Zitat