Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - bewegung mit Pfeiltasten


Zlatan - Di 25.01.11 15:12
Titel: bewegung mit Pfeiltasten
Wie kann ich mit Hilfe der Pfeiltasten einen einfachen punkt bewegen?
Also sodass ich bei Programmstart eine Punkt mit den Pfeiltasten bewegen kann.

Der Punkt kann z.B. ein Shape sein, oder? :?:


Moderiert von user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am Di 25.01.2011 um 14:35


MaxWurzel - Di 25.01.11 15:38

z.B. so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
    VK_Left: shape1.Left := shape1.Left -1;
    VK_Right: shape1.Left := shape1.Left +1;
  end;
end;


Zlatan - Di 25.01.11 15:56

und was ist mit hoch und runter

Der Text scheint sehr fehlerhaft zu sein z.B. ist das var.. in einer Klammer
Ich habe es ausprobiert und es gibt viele Fehler


Brauche einen kompletten quelltext mit Deklarationen
Benutz wird nur ein Shape


HenryHux - Di 25.01.11 16:09

Der Text sollte so eigentlich richtig sein.
Wähle bei den Events der Form das Event KeyDown aus und Doppelklicke es.
Danach solltest du das Grundgerüst haben.
Ein var kann übrigens auch in den Parametern stehen.
Lies dir dazu mal ein Kapitel über die call by reference durch. -> http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Pascal:_Prozeduren_und_Funktionen#Prozeduren_mit_Variablen.C3.BCbergabe_.28call_by_reference.29

Lg


MaxWurzel - Di 25.01.11 16:10

Hoch und runter geht ebenso.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
    VK_Left: shape1.Left := shape1.Left -1;
    VK_Right: shape1.Left := shape1.Left +1;
    VK_Up: shape1.Top := shape1.Top -1;
    VK_Down: shape1.Top := shape1.Top +1;
  end;
end;


Zlatan - Di 25.01.11 16:14

sorry funktioniert doch aber trotzdem weiß ich nicht wie hoch und runter geht
jetzt schreibst du es :? DANKE


Zlatan - Di 25.01.11 16:17

eine frage hätte ich noch was ist mit diagonal gehen?


Namenlosnameless - Di 25.01.11 16:34

In in dem du 2 Pfeile kombinierst


Zlatan - Di 25.01.11 16:36

wenn ich 2 pfeile gleichzeitig drücke geht das shape in die richtung, wo ich zuerst gedrückt habe
diagonal kann es noch nicht gehen


jaenicke - Di 25.01.11 17:53

Das wird so auch nie gehen. Das geht nur mit GetKeyState / GetAsyncKeyState oder ähnlichem, wenn du den Status der Tasten abfragst.


Zlatan - Di 25.01.11 18:02

Was??? :?:


jaenicke - Di 25.01.11 18:13

Suche bei Google DELPHI GETKEYSTATE :roll:
Erstes Ergebnis [http://www.swissdelphicenter.ch/torry/showcode.php?id=1622]... :roll: