AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pfeiltasten benutzen zum Bewegen eines Shapes

Ein Thema von Maurooon · begonnen am 28. Dez 2016 · letzter Beitrag vom 29. Dez 2016
Antwort Antwort
Seite 1 von 2  1 2      
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#1

Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 13:59
Delphi-Version: 5
Hallo,

ich hoffe ihr hattet alle schöne Feiertage.

Hier zu meiner Frage: Ich habe ein Shape und mehrere Buttons auf meiner Maske. Ich möchte nun das Shape mit den Pfeiltasten bewegen. drücke ich aber die Pfeiltasten, dann bewegt sich der Cursor sag ich mal nur auf den Buttons, wie man das eben kennt. was muss ich tun, damit sich tatsächlich NUR das Shape beweget?

Meine Prozedur sieht wie folgt aus:

Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  if key = vk_left then
   Shape16.Left := Shape16.Left - 2;
  if key = vk_right then
   Shape16.Left := Shape16.Left + 2;
  if key = vk_up then
   Shape16.Top := Shape16.Top - 2;
  if key = vk_down then
   Shape16.Top := Shape16.Top + 2;
end;
LG
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#2

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:11
Setz in deinem FormCreate-Event mal KeyPreview := True dann sollte es klappen. Sicher bin ich mir nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:12
Ich würde das ja gleich im OI setzen.

Und dann muß man aufpassen, dass der Fokus nicht in einem Control liegt, welches diese Tasten vorher abfängt.
$2B or not $2B
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#4

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:13
Oder so
Ich persönlich mag es lieber im Code denn dann hat man alles an zentraler Stelle und muss nicht erst im IO suchen.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:37
Nach der Behandlung kann man m.E. Key noch auf #0 setzen, damit ein focusiertes Control nicht noch auf die Taste reagiert.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#6

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:41
Setz in deinem FormCreate-Event mal KeyPreview := True dann sollte es klappen. Sicher bin ich mir nicht.

Also jetzt funktioniert schon mal das Bewegen des Shapes, vielen Dank! Aber trotzdem bewegt sie der Cursor auf den Buttons. Da ich unter den Buttons auch eine Trackbar hab verstellt diese sich auch unglücklicherweise noch und führt so noch andere Dinge aus.... Jemand eine Lösung dafür?
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:49
Aber trotzdem bewegt sie der Cursor auf den Buttons.
...
Jemand eine Lösung dafür?
stahli


Ich persönlich mag es lieber im Code denn dann hat man alles an zentraler Stelle und muss nicht erst im IO suchen.
Du erstellst auch alle Controls manuell und setzt deren Properties im Code?
$2B or not $2B
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#8

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 14:56
Nimm statt des Ereignisses FormKeyDown einfach FormShortCut (OnShortCut) des Formulars.

Die Tasten kannst du da so auswerten:

if Msg.CharCode = VK_LEFT then begin [DeinCode]; Handled:=true; end;
Durch das Handled:=true wird dann der Tastenanschlag nicht mehr an andere Komponenten weiter gegeben.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#9

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 15:19
Nimm statt des Ereignisses FormKeyDown einfach FormShortCut (OnShortCut) des Formulars.

Die Tasten kannst du da so auswerten:

if Msg.CharCode = VK_LEFT then begin [DeinCode]; Handled:=true; end;
Durch das Handled:=true wird dann der Tastenanschlag nicht mehr an andere Komponenten weiter gegeben.

Oder so
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if Key = vk_left then
  Shape1.Left := Shape1.Left - 2;
 if Key = vk_right then
  Shape1.Left := Shape1.Left + 2;
 if Key = vk_up then
  Shape1.Top := Shape1.Top - 2;
 if Key = vk_down then
  Shape1.Top := Shape1.Top + 2;

 Key := 0; // <==
end;
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#10

AW: Pfeiltasten benutzen zum Bewegen eines Shapes

  Alt 28. Dez 2016, 15:28
Nach der Behandlung kann man m.E. Key noch auf #0 setzen, damit ein focusiertes Control nicht noch auf die Taste reagiert.
Da ich aber ja key: word habe, motzt er rum wenn ich key := #0 setzen möchte
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:21 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