AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mauszeiger mit Cursortasten bewegen ?

Mauszeiger mit Cursortasten bewegen ?

Ein Thema von -=cats=- · begonnen am 28. Nov 2006 · letzter Beitrag vom 29. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#1

Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 07:37
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=-
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 07:39
hast du dir schonmal die Eingabehilfen in Windows angesehen? Wenn dir das nicht genügt kannst du dir sowas auch recht schnell selbst schreiben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 07:49
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 08:28
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 09:19
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 09:21
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 09:27
Sorry, bin noch Anfänger
Dann werd ich mich mit dem Debugger
mal beschäftigen
Hab ich bisher noch nie benutzt ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 09:46
Steht KeyPreview auf True?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 09:54
Ok, also den Fehler habe ich gefunden.
Die Methode wurde nicht aufgerufen ...

Aber wie es immer so ist ...
hat man einen Fehler behoben, folgen gleich
3 neue

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 Hab es mit einer
while-Schleife gemacht und schwupps ...
das war scheinbar eine Endlosschleife

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



Scheinbar geht es mit der ersten Möglichkeit
im onKeyDown doch
Auf einmal ging es eben ...
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Mauszeiger mit Cursortasten bewegen ?

  Alt 28. Nov 2006, 12:18
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:
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
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr.
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