AGB  ·  Datenschutz  ·  Impressum  







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

pfeiltasten

Ein Thema von eif · begonnen am 6. Mär 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
eif

Registriert seit: 3. Mär 2007
8 Beiträge
 
#1

pfeiltasten

  Alt 6. Mär 2007, 12:21
hi.... programmiere grad ein bomberman clone als info-projekt in der schule... player1 läuft schon... palyer2 nicht... dieser sollte mit der pfeiltasten und der entertaste gesteuert werden... komme nicht mit dem OnKeyPres zurecht... kann mir das mal jem kurz erklären??

folgendermaßen hab ich die delphi-hilfe verstanden... und wenn ich im Form1 onKeyPress clicke erscheint das auch so in meinem quelltext... was ist falsch???

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
     if key = VK_LEFT then
       begin
         if (feld[p2x,p2y] <> 'kiste') and (feld[p2x,p2y-1] <> 'wand') then
           begin
              //....
           end;
         end;
Gehe nicht, wohin der Weg führen mag sondern dorthin, wo kein Weg ist und hinterlasse eine Spur...
  Mit Zitat antworten Zitat
passsy

Registriert seit: 1. Jan 2007
124 Beiträge
 
#2

Re: pfeiltasten

  Alt 6. Mär 2007, 12:36
Delphi-Quellcode:
begin //Taste A
   if ab=true then
                  begin
                   if GetKeyState($41) < 0 then
                      begi
                           ab:=false;
                           [...]
                      end;
                   end;
   if GetKeyState($41) >= 0 then
                                begin
                                 ab:=true;
                                 [...]
                                end;
end;
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: pfeiltasten

  Alt 6. Mär 2007, 12:49
Hi,

die Delphi-Hilfe sagt zum Thema Delphi-Referenz durchsuchenVirtuelle Tastencodes folgendes:
Delphi-Hilfe:
[...] Über diese Konstanten kann dann in Windows-API-Aufrufen oder in den Ereignisbehandlungsroutinen für OnKeyUp und OnKeyDown auf die Tasten Bezug genommen werden.

OnKeyUp und OnKeyDown haben andere Parameter als OnKeyPress, welches Du benutzt.

OnKeyDown/OnKeyUp ist vom Typ TKeyEvent:
TKeyEvent = procedure (Sender: TObject; var Key: Word; Shift: TShiftState) of object; während OnKeyPress vom Typ TKeyPressEvent ist:
type TKeyPressEvent = procedure (Sender: TObject; var Key: Char) of object; Der Parameter Key ist bei OnKeyPress also kein Word, sondern ein Char.

Die Konstanten VK_* sind aber Word.

Daher rührt vermutlich Dein Fehler. Mit einer Fehlerbeschreibung was denn genau nicht geht (Compilermeldung?) wäre die Frage einfacher zu beantworten


PS: Keine Ahnung, ob das hier hilft, aber schau Dir evtl. mal Delphi-Referenz durchsuchenOrd an..

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: pfeiltasten

  Alt 6. Mär 2007, 12:57
Die uebliche Verwechslung von Tastendruecken und den daraus resultierenden Zeichen. OnKeyDown und OnKeyUp operieren auf der Ebene von Tastendruecken. Sie sind eine Umsetzung von WM_KEYDOWN und WM_KEYUP. Nachdem ein Programm diese Messages empfangen hat generiert es (im DispatchMessage) WM_CHAR Messages. Damit sind wir auf der Ebene von Zeichen. Diese sind es die OnKeyPress handhabt. Es besteht keine 1:1 Relation! Man bekommt nur WM_CHAR Messages fuer Tastendruecke die ein Zeichen erzeugen. Zusaetzlich kann es mehrere WM_KEYDOWN und WM_KEYUP benoetigen um ein WM_CHAR zu bekommen. Bei diakritischen Zeichen naemlich.

Anmerkung: Das ist vereinfacht.
  Mit Zitat antworten Zitat
eif

Registriert seit: 3. Mär 2007
8 Beiträge
 
#5

Re: pfeiltasten

  Alt 6. Mär 2007, 14:05
okay... danke erstmal.... ich versuch mich mal dran...

lg... eif =)
Gehe nicht, wohin der Weg führen mag sondern dorthin, wo kein Weg ist und hinterlasse eine Spur...
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:19 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