Pfeiltasten werden nicht angenommen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Antistacmania
Beiträge: 8
Registriert: Sa 12. Okt 2013, 17:56

Pfeiltasten werden nicht angenommen

Beitrag von Antistacmania »

Hi Leute,

vieleicht kann mir einer Helfen. Bei mir werden die codes für die Pfeiltasten nicht angenommen. Wenn ich statt dessen W A S D nehme funktioniert es einwandfrei. (Habe es auch mit VK_up usw probiert. keypreview true und false habe ich auch durchgetestet. Fals jemand eine Idee hat wäre das sehr nett.


Flieger ist ein Image, dass einfach bewegt werden soll.

Code: Alles auswählen

TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState //  Word =Zahl
  );
begin
  If Key =  072    then  flieger.Top:= flieger.Top -10;
  if Key =  080    then  flieger.Top:= flieger.Top +10;
  If Key =  077    then  flieger.Left:= flieger.Left-10;
  If Key =  075    then  flieger.Left:= flieger.Left +10;
 
end;
 
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char); //char = Zeichen 
begin
  If Key =  vk_up   then  flieger.Top:= flieger.Top -5;
  if Key =  vk_down   then  flieger.Top:= flieger.Top +5;
  If Key =  vk_left   then  flieger.Left:= flieger.Left-5;
  If Key =  vk_right   then  flieger.Left:= flieger.Left +5;
end;
Zuletzt geändert von Lori am So 13. Okt 2013, 10:53, insgesamt 1-mal geändert.
Grund: Highlighter

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Pfeiltasten werden nicht angenommen

Beitrag von Michl »

Und wenn du mal andere "Keys" probierst?! Bei mir funktioniert das gut:

Code: Alles auswählen

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  Caption:=IntToStr(Key);
  case Key of
    37:Caption:='Pfeiltaste "Links" gedrückt!';
    38:Caption:='Pfeiltaste "Hoch" gedrückt!';
    39:Caption:='Pfeiltaste "Rechts" gedrückt!';
    40:Caption:='Pfeiltaste "Runter" gedrückt!';
  end;
end;  
und auch

Code: Alles auswählen

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  Caption:=IntToStr(Key);
  case Key of
    vk_left:Caption:='Pfeiltaste "Links" gedrückt!';
    vk_up:Caption:='Pfeiltaste "Hoch" gedrückt!';
    vk_right:Caption:='Pfeiltaste "Rechts" gedrückt!';
    vk_down:Caption:='Pfeiltaste "Runter" gedrückt!';
  end;
end; 

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antistacmania
Beiträge: 8
Registriert: Sa 12. Okt 2013, 17:56

Re: Pfeiltasten werden nicht angenommen

Beitrag von Antistacmania »

Wie gesagt mit anderen Tasten klappt alles, nur die Pfeiltasten will er nicht.

Bekomme auch so eine nette Fehlermeldung
Error: Identifier not found "vk_up"

Mit deinen Tasten codes funktioniert es

37 'Pfeiltaste "Links"
38 'Pfeiltaste "Hoch"
39 'Pfeiltaste "Rechts"
40 'Pfeiltaste "Runter"
Zuletzt geändert von Antistacmania am So 13. Okt 2013, 00:20, insgesamt 1-mal geändert.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Pfeiltasten werden nicht angenommen

Beitrag von Michl »

uses LCLType evtl?!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antistacmania
Beiträge: 8
Registriert: Sa 12. Okt 2013, 17:56

Re: Pfeiltasten werden nicht angenommen

Beitrag von Antistacmania »

Michl hat geschrieben:uses LCLType evtl?!

Das war es -_-

vielen vielen Dank!

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Pfeiltasten werden nicht angenommen

Beitrag von Michl »

Antistacmania hat geschrieben:Bekomme auch so eine nette Fehlermeldung
Error: Identifier not found "vk_up"
Als Tip: Bei so einer Fehlermeldung, kann man im Nachrichtenfenster auf die Fehlermeldung RechtsKlicken und auf "Suche Bezeichner" klicken. Dann wird in den Units von Lazarus/FPC nach diesem "Schlüsselwort" gesucht...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antistacmania
Beiträge: 8
Registriert: Sa 12. Okt 2013, 17:56

Re: Pfeiltasten werden nicht angenommen

Beitrag von Antistacmania »

Danke für den Tipp.

Habe das letzte mal mit Delphi 1.0 und Turbo Pascal programiert, da hat sich doch einiges geändert :lol:

Simor
Beiträge: 11
Registriert: Do 19. Sep 2013, 15:49

Re: Pfeiltasten werden nicht angenommen

Beitrag von Simor »

Wenn du mit (Hexadez.-)Zahlen für die Keys arbeitest musst du ein $ vorstellen:

Code: Alles auswählen

TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState //  Word =Zahl
  );
begin
  If Key =  $72    then  flieger.Top:= flieger.Top -10;
  if Key =  $80    then  flieger.Top:= flieger.Top +10;
  If Key =  $77    then  flieger.Left:= flieger.Left-10;
  If Key =  $75    then  flieger.Left:= flieger.Left +10;
 
end;

Antworten