Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Cursor Position steuern ? (https://www.delphipraxis.net/127863-cursor-position-steuern.html)

thomas2009 20. Jan 2009 14:04


Cursor Position steuern ?
 
Hallo

ich versuche die Cursor-Position zu steuern.
Der Cursor soll soll nicht Pixel Pixel auf Form bewegen sondern z.B.
100, 100

In Edit möchte ich das Ergebnis auch lesen :
Delphi-Quellcode:
Edit2.Text:=IntToStr(Mouse.CursorPos.X) +', ' +IntToStr(Mouse.CursorPos.Y);
wie schaffe ich sowas ?

Gruß

DeddyH 20. Jan 2009 14:09

Re: Cursor Position steuern ?
 
Versuch es mal mit MSDN-Library durchsuchenSetCursorPos.

Stutz 20. Jan 2009 14:09

Re: Cursor Position steuern ?
 
Zitat:

Zitat von thomas2009
Der Cursor soll soll nicht Pixel Pixel auf Form bewegen sondern z.B.
100, 100

kannst du das etwas deutlicher ausdrücken? was meinst du mit Pixel Pixel?? und heißt 100,100 die neuen Koordinaten oder um wie weit er verschoben werden soll?

matashen 20. Jan 2009 14:11

Re: Cursor Position steuern ?
 
Zitat:

Delphi-Quellcode:
[pre]In Edit möchte ich das Ergebnis auch lesen :
Delphi-Quellcode: markieren
Edit2.Text:=IntToStr(Mouse.CursorPos.X,Mouse.CursorPos.X) [/pre]

Das kann nicht gehen, wenn dann
Edit2.Text:=IntToStr(Mouse.CursorPos.X)+','+IntToS tr(Mouse.CursorPos.X); //<< Und Semikolon nicht vergessen :stupid:

Gruß Matthias

mr_emre_d 20. Jan 2009 14:20

Re: Cursor Position steuern ?
 
Doch, es kann :stupid:

:P

thomas2009 20. Jan 2009 14:22

Re: Cursor Position steuern ?
 
Ich meine der Cursor soll nur auf diese Positionen bewegen z,B. 100,100, 100, 200, 100, 300, ...
d.h. wenn der Cursor Position 60,545 dann soll der Cursor zu der Position 100, 500 springen

Ich wollte damit dass der Cursor nur auf dem Raster des Forms bewegen muss. Das ist das Ziel

mr_emre_d 20. Jan 2009 14:25

Re: Cursor Position steuern ?
 
(gewünschte stelle div 100) * 100
Bsp:
234 --> 234 div 100 = 2 *100 = 200 !
251 --> 251 div 100 = 3 *100 = 300 !

:P:P

thomas2009 20. Jan 2009 14:51

Re: Cursor Position steuern ?
 
Versucht habe ich mit diesem Timer :
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
  var point:TPoint;
begin
getCursorPos(point);
SetCursorPos(Left+Trunc(point.X/100),Top+Trunc(point.y/100));

end;
Aber der Cursor springt immer wieder ganz oben links von dem Screen.

was muss ich auch dazu schreiben :gruebel:

matashen 20. Jan 2009 14:54

Re: Cursor Position steuern ?
 
Weils du nur durch 100 teilst, aber nicht mehr multiplizierst. Ausserdem würde ich nicht / nehmen sondern div. div ist für ganzzahlen und rundet dir das dann automatisch, weil nachkommastellen wegfallen. Dann musst du nicht nen Umweg über trunc machen.

Gruß Matthias

Stutz 20. Jan 2009 14:56

Re: Cursor Position steuern ?
 
war grad irgendwie n bisschen falsch

thomas2009 20. Jan 2009 14:57

Re: Cursor Position steuern ?
 
Danke!
Es hat mit dem Code wie ich sehe geklappt : )
Delphi-Quellcode:
SetCursorPos(Left+Trunc(Mouse.CursorPos.X+Mouse.CursorPos.X/100),Top+Trunc(Mouse.CursorPos.Y+Mouse.CursorPos.Y/100));

matashen 20. Jan 2009 14:58

Re: Cursor Position steuern ?
 
ich würd aber trotzdem div zum dividieren nehmen, dann gibts nicht soviel trunc-gewurschtel, und performanter ist es auch.

Gruß Matthias

thomas2009 20. Jan 2009 15:24

Re: Cursor Position steuern ?
 
Zitat:

Zitat von Stutz
war grad irgendwie n bisschen falsch

Es stimmt der Code funktioniert nicht ganz richtig !

DeddyH 20. Jan 2009 15:28

Re: Cursor Position steuern ?
 
Wieso wird Left eigentlich dazuaddiert? Mouse.CursorPos ist doch bereits in Screen-Koordinaten. Müsste also meiner Meinung nach heißen:
Delphi-Quellcode:
SetCursorPos(Mouse.CursorPos.X div 100 * 100,Mouse.CursorPos.Y div 100 * 100);
Oder mache ich jetzt einen dummen Denkfehler?

thomas2009 20. Jan 2009 15:38

Re: Cursor Position steuern ?
 
Zitat:

Zitat von DeddyH
Wieso wird Left eigentlich dazuaddiert? Mouse.CursorPos ist doch bereits in Screen-Koordinaten. Müsste also meiner Meinung nach heißen:
Delphi-Quellcode:
SetCursorPos(Mouse.CursorPos.X div 100 * 100,Mouse.CursorPos.Y div 100 * 100);
Oder mache ich jetzt einen dummen Denkfehler?

Mit deinem Code sprigt der Cursor nur nach oben und nach links
Der Cursor soll auch nach rechts und nach unten springen, wenn das Ziel näher als nach oben und nach links :mrgreen:

Meine Gedanken sagen mir, dass man die Höhe und die Breite des Forms zum Brechnen kommen müssen :gruebel:

matashen 20. Jan 2009 16:04

Re: Cursor Position steuern ?
 
In welchem Event hast du denn das reingeschrieben ?
Das würde helfen das ganze richtig zu stellen

Gruß Matthias

thomas2009 20. Jan 2009 19:44

Re: Cursor Position steuern ?
 
Zitat:

Zitat von matashen
In welchem Event hast du denn das reingeschrieben ?
Das würde helfen das ganze richtig zu stellen

Gruß Matthias

Zur Zeit in einem Timer für den Test, sonst werde ich dies z.B. in FormOnMouseMouve


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz