Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tastencodes und die Fehlermeldung! (https://www.delphipraxis.net/19541-tastencodes-und-die-fehlermeldung.html)

maximi 5. Apr 2004 11:11


Tastencodes und die Fehlermeldung!
 
Holla!
Ich möchte meinen Code vereinfachen und lege eine Schleife über meine Tastencodes!

Delphi-Quellcode:
for i := 0 to form8.ComboBox1.Items.Count-1 do
begin
  if(GetKeyState(StrToInt('VK_'+form8.bewegungen[i].name)) < 0)then //bewegungen[i].name :String
      ...
Ich bekomme die Fehlermeldung, dass "'VK_'+form8.bewegungen[i].name" kein Integer ist. Was kann ich machen?

Max

Luckie 5. Apr 2004 11:14

Re: Tastencodes und die Fehlermeldung!
 
Sorg dafür dass es ein Integer wird. Die virtuellen Tastaturcodes (VK_...) stehen nur für Integer-Konstanten.

maximi 5. Apr 2004 11:21

Re: Tastencodes und die Fehlermeldung!
 
Probier ich doch mit strtoint!

Luckie 5. Apr 2004 11:25

Re: Tastencodes und die Fehlermeldung!
 
Sehr schön. "VK_..." ist nur leider keine Zahl, zu mindest für mich nicht und für die Funktion StrToInt anscheinend auch nicht.

maximi 5. Apr 2004 11:27

Re: Tastencodes und die Fehlermeldung!
 
ja und was soll ich dann machen?

maximi 5. Apr 2004 12:52

Re: Tastencodes und die Fehlermeldung!
 
in was soll ich denn "VK_'+form8.bewegungen[i].name" umwandeln?

andianon 5. Apr 2004 13:31

Re: Tastencodes und die Fehlermeldung!
 
Code:
StrToInt('VK_'+form8.bewegungen[i].name))
Kurze Zusammenfassung:
'VK_' ist eine Zeichenkette
...[i].name ist eine Zeichenkette

Ergebnis: Die "+"-Verknüpfung zweier Zeichenketten ist wieder eine Zeichenkette. Eine Zeichenkette kannst du nur dann per StrToInt in einen Ganzzahlwert umwandeln, wenn sie auschließlich aus gültigen Zeichen für Ganzzahlen besteht '0'..'9' (was mit '.' passtiert, weiß ich nicht auf dem Stehgreif). Eines ist aber sicher: Du musst die Ergebniszeichenkette mappen oder eine Fallunterscheidung machen, weil es sich bei den Bezeichnungen, z.B. VK_RETURN, nur um die BEZEICHNUNG einer Konstante handelt.

Gruß Andi


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 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