Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit FormKeyPress (https://www.delphipraxis.net/119881-problem-mit-formkeypress.html)

Jeopardize 2. Sep 2008 18:39


Problem mit FormKeyPress
 
Hi ich habe ein Problem, der folgende Code funktioniert nicht:

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
VK_1 = $31;
VK_2 = $32;
VK_3 = $33;
begin
  case Key of
    VK_1: Mode := 1;
    VK_2: Mode := 2;
    VK_3: Mode := 3;
  end;
end;
Zitat:

[Pascal Fehler] Unit1.pas(87): E2010 Inkompatible Typen: 'Char' und 'Integer'
[Pascal Fehler] Unit1.pas(88): E2010 Inkompatible Typen: 'Char' und 'Integer'
[Pascal Fehler] Unit1.pas(89): E2010 Inkompatible Typen: 'Char' und 'Integer'
(Mode ist ein Integer)

Bestimmt ist es irgendwas einfaches und ich komm nicht drauf^^
danke schonmal für Antworten

MCXSC 2. Sep 2008 18:44

Re: Problem mit FormKeyPress
 
Versuch mal "Mode1" oder ähnliches, "Mode" selbst ist (glaube ich) doch reserviert?!

(Oder was soll "Mode" sein?)

Jeopardize 2. Sep 2008 19:00

Re: Problem mit FormKeyPress
 
hm, nein, da kommen noch immer die gleichen Fehler. :(

Mode ist einfach nur ein Integer den ich deklariert habe.
Ich möchte das er bei den Tasten 1,2,3 die ensprechenden Werte hat.

MCXSC 2. Sep 2008 19:07

Re: Problem mit FormKeyPress
 
Ich hab irgendwie die Vermutung, dass es eher an "Key" und den "VK_X" liegt. Klappt es denn so?

Delphi-Quellcode:
if Key = VK_1 then Mode := 1
else if Key = VK_2 then Mode := 2
else if Key = VK_3 then Mode := 3;
Die VK_X sind ja Char-Werte, Case-Abfragen allerdings für Integer gedacht.

Jeopardize 2. Sep 2008 19:10

Re: Problem mit FormKeyPress
 
ich habe es mal ausprobiert, ändert nur die Fehler:
Zitat:

[Pascal Fehler] Unit1.pas(86): E2008 Inkompatible Typen
[Pascal Fehler] Unit1.pas(87): E2008 Inkompatible Typen
[Pascal Fehler] Unit1.pas(88): E2008 Inkompatible Typen

Jeopardize 2. Sep 2008 19:23

Re: Problem mit FormKeyPress
 
okay, habe den Fehler gefunden, man muss anstatt $ # nehmen :wall:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
VK_1 = #31;
VK_2 = #32;
VK_3 = #33;
begin
  case Key of
    VK_1: MMode := 1;
    VK_2: MMode := 2;
    VK_3: MMode := 3;
  end;
end;

divBy0 2. Sep 2008 19:24

Re: Problem mit FormKeyPress
 
Das geht

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
VK_1 = $31;
VK_2 = $32;
VK_3 = $33;
begin
  case ord(Key) of
    VK_1: Mode := 1;
    VK_2: Mode := 2;
    VK_3: Mode := 3;
  end;
end;
oder das


Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
VK_1 = #$31;
VK_2 = #$32;
VK_3 = #$33;
begin
  case Key of
    VK_1: Mode := 1;
    VK_2: Mode := 2;
    VK_3: Mode := 3;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz