Seit Tagen versuche ich, den Mauscursor an bestimmte Stellen zu setzen- ohne Erfolg.
Tagelanges Googlen hat mir nicht helfen können.
Habe ein Punktraster auf der Form erstellt, Abstand der Punkte 50 Pixel.
Für ein Grafikprogramm möchte ich, dass der Mauscursor beim hinüberfahren von einem Punkt zum anderen springt,
da nur an diesen Stellen gezeichnet werden soll.
Den unten stehenden code habe ich aus einem Delphi-Forum, er klappt insofern,
das der Mauszeiger in die linke obere Ecke gesetzt wird, sobald die if-Bedingung erfüllt ist.
Und dort ist er dann auch nicht mehr wegzukriegen.
Wollte diesen code modifizieren und für mich verwenden.
Dazu komentiere ich das SetCursorPos(Pt.X, Pt.Y) raus und nehme mein verändertes darunter.
Doch dann reagiert die Maus ganz normal und wird durch meinen code garnicht beeinflusst!!??
Die mit // auskomentierten Zeilen sind von mir.
uses .., LclIntf, ... // Diese unit muss eingebunden werden(durch googlen erfahren).
Code: Alles auswählen
Y: Integer);
Var Pt: TPoint;
// xx,yy: Integer;
Begin
Pt := Form1.ScreenToClient(Mouse.CursorPos);
{}Pt.X := X; // wozu Mouse.CursorPos abfragen,
{}Pt.Y := Y; // obwohl man die Werte doch schon in X und Y hat?
Caption := Format('%d:%d', [Pt.X, Pt.Y]); // Zeigt nur die x/y-Coordinaten
If (Pt.X in [100..200]) and (Pt.Y in [50..150]) Then
begin Label1.Caption:='FormMouseMove';
Pt.X := 100 + (200 - 100) div 2; // 150
Pt.Y := 50 + (150 - 50) div 2; // 100
Pt.X := 50;
Pt.Y := 50;
// xx := trunc(PT.x/100);
// yy := trunc(PT.y/100);
Pt := Form1.ClientToScreen(Pt);
SetCursorPos(Pt.X, Pt.Y);
// SetCursorPos(xx,yy);
end;
Code: Alles auswählen

