[Delphi] CurserPosition ermitteln

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von EnnyStar, 23. Mai 2008 .

Schlagworte:
  1. 23. Mai 2008
    CurserPosition ermitteln

    Halo Leute ich versuche mit Delphi die genaue Curserpostion zu ermitteln.
    Bis jetzt sieht es so aus:
    Code:
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    Label1.Caption:=IntToStr(Mouse.CursorPos.x);
    Label2.Caption:=IntToStr(Mouse.CursorPos.y);
    end;
    
    Allerdings sind die Werte für mich unnütz da max x=1248 y= 1024. Er geht also nach der Auflösung. Ich bräuchte aber "DirectX Werte" oder wie die heißen.. Ich möchte nämlich meinen Curser von meiner G15 bewegen lassen... Es sieht etwa so bei der G15 aus:
    Code:
    <event type="mousemove" dx="40400" dy="39000"/>
    
    Also ein spektrum von 0 bis 65535

    Ich würde mich über rasche Hilfe sehr freuen.
    MfG EnnyStar
     
  2. 23. Mai 2008
    AW: CurserPosition ermitteln

    Cursor-Positionen sind erstmal immer Auflösungs-Abhängig. Du kannst die natürlich hochrechnen.
    Hab das mal so geschrieben, kann sein dass da noch Fehler drin sind.

    Code:
    [B]procedure[/B] _GetCursorPos([B]out[/B] pos: TPoint);
    [B]var[/B]
     p: TPoint;
     pX, pY: WORD;
    [B]begin[/B]
     GetCursorPos(p);
     p := ClientToScreen(p);
    
     pX := (p.x [B]div[/B] Screen.Width) * [COLOR="Blue"]100[/COLOR];
     pY := (p.y [B]div[/B] Screen.Height) * [COLOR="Blue"]100[/COLOR];
    
     pos.x := (HIGH(WORD) [B]div[/B] 100) * pX;
     pos.Y := (HIGH(WORD) [B]div[/B] 100) * pY;
    [B]end[/B];
    
    Die Prozentrechnung ist mit sicherheit falsch aber probier mal so =)

    Hier ist en Beispiel fals das funktioniert ^^
    Code:
    [B]procedure[/B] TForm1.Timer1Timer(Sender: TObject);
    [B]var[/B]
     p: TPoint;
    [B]begin[/B]
     _getcursorpos(p);
     Label1.Caption:=IntToStr(p.x);
     Label2.Caption:=IntToStr(p.y);
    [B]end[/B];
    
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.