Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Objekt in Lazarus per Tastendruck bewegen! (https://www.delphipraxis.net/150989-objekt-lazarus-per-tastendruck-bewegen.html)

foerster7892 2. Mai 2010 15:38


Objekt in Lazarus per Tastendruck bewegen!
 
Kann einer hier sagen wie man in Lazarus per Tastendruck Objekte bewegen kann?
Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Shape1.Left<236) and (Shape1.Left>2) then
  begin
    case key of
      VK_RIGHT: Shape1.Left:=Shape1.Left+1;
      VK_LEFT : Shape1.Left:=Shape1.Left-1;
    end;
  end;
end;
ich bekomme hier immer eine Fehlermeldung bei VK_Right und VK_Left!

DeddyH 2. Mai 2010 16:12

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Und welche? Oder ist das streng geheim?

foerster7892 2. Mai 2010 16:27

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Oh sorry hab ich vergessen:
Identifier not found "VK_RIGHT"

daywalker9 2. Mai 2010 16:53

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Einmal gegoogelt und gleich der erste Treffer: Virtual Key Codes

DeddyH 2. Mai 2010 17:00

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Oder in der "%lazarus%\fpc\2.2.4\source\rtl\win\wininc\defines .inc" nachschauen. Vermutlich muss man dazu nur die richtige Unit einbinden (Windows wahrscheinlich).

foerster7892 2. Mai 2010 17:24

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Zitat:

Zitat von daywalker9
Einmal gegoogelt und gleich der erste Treffer: Virtual Key Codes

? Ja ?

Also ich hab hier die Liste verwendet hat mir jemand in der Schule gegeben weil ich gefragt hab:
http://gamerpc.ga.funpic.de/sonstige...baren/Alle.txt

und da stehen genau die die ich verwendet hab drin! Sind die falsch?

Edit: Oh beim runterscrollen kommt ja die liste und siehe da die gleichen befehle die ich verwendet hab(siehe code oben)
Weiß denn keiner was ich falsch mache?(VK_RIGHT und VK_LEFT stehen doch da auch)

daywalker9 2. Mai 2010 17:30

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Dort sind auch die Werte eingetragen, sodass du die im schlimmsten Fall selber definierst!

foerster7892 2. Mai 2010 17:32

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Selber definieren? Wie? Muss ich erst lernen!

wicht 2. Mai 2010 17:33

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Roter Kasten. Fail. Ich poste es trotzdem:

Die von dir verlinkte Textdatei hat mit der Fehlermeldung nichts zu tun. Lazarus kennt bei dir VK_RIGHT/VK_LEFT einfach nicht. Das sind schließlich nur Bezeichnungen für "Zahlen", die unter Delphi standardmäßig bekannt sind, weil die Unit, die die Definitionen enthält, wohl standardmäßig in der "uses"-Klausel steht. Damit es klappt musst du eben direkt die Werte der Konstanten angeben wie hier in meinem Beispiel, wobei die Werte aus der von daywalker9 verlinkten Liste kommen:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Shape1.Left<236) and (Shape1.Left>2) then
  begin
    case key of
      $27: Shape1.Left:=Shape1.Left+1; // VK_RIGHT = $27
      $25 : Shape1.Left:=Shape1.Left-1; // VK_LEFT = $25
    end;
  end;
end;
Oder du bindest eben die Unit ein, die diese Konstanten definiert. Welche das ist, weiß ich so direkt auch nicht, ich vermute, wie bereits von DeddyH erwähnt, "Windows"...

HTH


Edit: Änder mal deine Signatur - die bringt dir sicher mehr Nach- als Vorteile :mrgreen: *SCNR*

Edit2: Selber definieren geht so:

Delphi-Quellcode:
const
  VK_LEFT = $27;
  VK_RIGHT = $25;
Das kommt unter den "type" Abschnitt der Unit, dann müsste es klappen.

foerster7892 2. Mai 2010 17:38

Re: Objekt in Lazarus per Tastendruck bewegen!
 
Ok danke erstmal

PS.: das mit dem von DeddyH war ja ne schöne idee wenn man soviel erfahrung hat und genau weiß wonach man in der Liste suche muss! Aber das weiß ich leider nicht! Ich denke das findet man einfach mit der Zeit raus^^

PS.: die signatur is nicht ernst gemeint und ich wußte das nunmal einfach nciht da ich es noch nie gemacht hab^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.
Seite 1 von 2  1 2      

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