Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mauszeiger mit Cursortasten bewegen ? (https://www.delphipraxis.net/81483-mauszeiger-mit-cursortasten-bewegen.html)

-=cats=- 28. Nov 2006 07:37


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:

SirThornberry 28. Nov 2006 07:39

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.

-=cats=- 28. Nov 2006 07:49

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 :-(

SirThornberry 28. Nov 2006 08:28

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.

-=cats=- 28. Nov 2006 09:19

Re: Mauszeiger mit Cursortasten bewegen ?
 
Ok, also ich habe es jetzt folgendermaßen
probiert:

Delphi-Quellcode:
 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;
Nur leider bewegt sich der Cursor nicht wenn ich "links" drücke :-(
Bin ich in der falschen Methode ?
Oder hat das einen anderen Grund ?

SirThornberry 28. Nov 2006 09:21

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.

-=cats=- 28. Nov 2006 09:27

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 ...

Luckie 28. Nov 2006 09:46

Re: Mauszeiger mit Cursortasten bewegen ?
 
Steht KeyPreview auf True?

-=cats=- 28. Nov 2006 09:54

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:
procedure TForm18.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if
   key = VK_LEFT
   then
  SetCursorPos(Mouse.CursorPos.X - 200, Mouse.CursorPos.Y);
end;
Da bekomme ich doch glatt die Fehlermeldung, "Inkompatible Typen".
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 ...

MarcoWarm 28. Nov 2006 12:18

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:
http://www.torry.net/quicksearchd.ph...nager&Title=No

die hat eine Methode AddHotkey:
Delphi-Quellcode:
HotKeyManager1.AddHotKey(VK_LEFT);
und ein Event OnHotKeyPressed
Delphi-Quellcode:
procedure TForm3.HotKeyManager1HotKeyPressed(HotKey: Cardinal; Index: Word);
begin
  if HotKey=VK_LEFT then
    SetCursorPos(Mouse.CursorPos.X-10,Mouse.CursorPos.y);

end;
somit hast du deine Tastaturmaussteuerung Systemweit registriert.

Bitte fragen, falls noch was unklar ist


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.
Seite 1 von 2  1 2      

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