![]() |
Mauszeiger mit Cursortasten bewegen ?
Hi :hi: ,
leider konnte ich zu meinem Problem bisher nichts finden ... Weiß vielleicht jemand, ob es eine Möglichkeit gibt den Mauszeiger mit Hilfe der Cursortasten (links, rechts, hoch, runter) zu steuern ? Wenn ja, wie ? Habe bisher nur was für das "Klicken" gefunden. Aber das brauche ich erst mal noch nicht ... Der Mauszeiger sollte auch schnell bewegt werden können. Also, nicht das man ewig warten muss, bis der Zeiger an die richtige Stelle "gefahren" ist. Kann man den Zeiger eigentlich auch Diagonal bewegen ? Oder ist das zu kompliziert ? Vielen Dank schon mal für Eure Hilfe !!! Gruß, -=cats=- :coder: |
Re: Mauszeiger mit Cursortasten bewegen ?
hast du dir schonmal die Eingabehilfen in Windows angesehen? Wenn dir das nicht genügt kannst du dir sowas auch recht schnell selbst schreiben.
|
Re: Mauszeiger mit Cursortasten bewegen ?
Also, ich würde mir das ganz gern selber schreiben.
Ich brauche das nur in einem bestimmten Teil meines Programms. Kannst Du mir erklären, wie das geht ? Also, ich habe gesehen, das es so ein Mouse_Event gibt. Aber irgendwie zeigt die Delphi-Hilfe dazu nichts an. Muss ich da noch etwas zu installieren ? Und dann gibt es da ja noch dieses MOUSEEVENTF_ ... Aber da habe ich nur was zum Klicken gefunden :-( |
Re: Mauszeiger mit Cursortasten bewegen ?
das klicken machst du mit der genannten Funktion. Wenn du nichts in der Delphihilfe findest liegt es daran das du das MSDN nicht eingebunden hast. Die Mausposition kannst du mit SetCursorPos ändern.
|
Re: Mauszeiger mit Cursortasten bewegen ?
Ok, also ich habe es jetzt folgendermaßen
probiert:
Delphi-Quellcode:
Nur leider bewegt sich der Cursor nicht wenn ich "links" drücke :-(
procedure TForm18.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key = vk_left then SetCursorPos(Mouse.CursorPos.X - 1, Mouse.CursorPos.Y); end; Bin ich in der falschen Methode ? Oder hat das einen anderen Grund ? |
Re: Mauszeiger mit Cursortasten bewegen ?
Hast du denn schonmal den Debugger bemüht? Ich könnte fast wetten das du niemals beim Drücken der Pfeiltaste in diese Methode kommst.
|
Re: Mauszeiger mit Cursortasten bewegen ?
Sorry, bin noch Anfänger :-(
Dann werd ich mich mit dem Debugger mal beschäftigen :-) Hab ich bisher noch nie benutzt ... |
Re: Mauszeiger mit Cursortasten bewegen ?
Steht KeyPreview auf True?
|
Re: Mauszeiger mit Cursortasten bewegen ?
Ok, also den Fehler habe ich gefunden.
Die Methode wurde nicht aufgerufen ... :wall: Aber wie es immer so ist ... hat man einen Fehler behoben, folgen gleich 3 neue :-D Meinen Cursor kann ich jetzt bewegen. Blöd nur, das ich ihn nur 1x bewegen kann. Beim ersten mal auf die Taste drücken. Dann dachte ich mir, mach ich doch einfach ne Schleife drum :-D Hab es mit einer while-Schleife gemacht und schwupps ... das war scheinbar eine Endlosschleife :-D Nun dachte ich mir, füge ich das in die Methode "OnKeyPress" ein. Und zwar so:
Delphi-Quellcode:
Da bekomme ich doch glatt die Fehlermeldung, "Inkompatible Typen".
procedure TForm18.FormKeyPress(Sender: TObject; var Key: Char);
begin if key = VK_LEFT then SetCursorPos(Mouse.CursorPos.X - 200, Mouse.CursorPos.Y); end; Warum weiß ich nicht ... Ich weiß nicht, was daran "inkompatibel" sein soll :-( Alles nicht so einfach :-D :shock: Scheinbar geht es mit der ersten Möglichkeit im onKeyDown doch :gruebel: Auf einmal ging es eben ... |
Re: Mauszeiger mit Cursortasten bewegen ?
Hi Cats,
um unabhängig davon zu sein, ob dein Formular den Fokus hat oder nicht, kannst du folgende Methode verwenden: du installierst dir die Hotkeymanager Komponente: ![]() die hat eine Methode AddHotkey:
Delphi-Quellcode:
und ein Event OnHotKeyPressed
HotKeyManager1.AddHotKey(VK_LEFT);
Delphi-Quellcode:
somit hast du deine Tastaturmaussteuerung Systemweit registriert.
procedure TForm3.HotKeyManager1HotKeyPressed(HotKey: Cardinal; Index: Word);
begin if HotKey=VK_LEFT then SetCursorPos(Mouse.CursorPos.X-10,Mouse.CursorPos.y); end; Bitte fragen, falls noch was unklar ist |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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-2025 by Thomas Breitkreuz