Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ord... (https://www.delphipraxis.net/109011-ord.html)

Nils_13 22. Feb 2008 19:15


Ord...
 
Hi,

ich muss mehrmals einen Char in Word (=Taste für OnKeyDown) verwandeln. Deshalb ist alles dynamisch aufgebaut. Viele Tasten wandelt Ord falsch um, z.B. #, -, $, % und viele mehr. Das heißt es passiert nichts wenn ich in OnKeyDown z.B. if Key = Ord('#') then schreibe. Hat jemand eine Idee, wie man z.B. die genannten Zeichen auch noch korrekt umwandeln könnte ? Es kann ruhig eine andere Funktion als Ord sein, denn man kann einfach Ord und X mit einer neuen Funktion zusammenführen.

Helmi 22. Feb 2008 19:26

Re: Ord...
 
Hallo,

ich hab mir den Wert von "#" angeschaut, er ist 35.

Und so hab ich eine Prüfung gemacht:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  If Key = #35 then
    ShowMessage('#');
end;

dominikkv 22. Feb 2008 19:28

Re: Ord...
 
Schau doch einfach was für eine Zahl bei Ord('#'); rauskommt und vergleiche dann direkt mit der.
Das wäre auch ein bisschen schneller von Ablauf her da die Konstante '#' nicht erst über die Funktion in eine Zahl "umgewandelt" werden muss sondern gleich als Konstante da steht.

Nils_13 22. Feb 2008 19:42

Re: Ord...
 
Hm, ob ich Key = Ord('#') oder Key = 35 ist leider kein Unterschied vom Ergebnis her.

Helmi 22. Feb 2008 19:46

Re: Ord...
 
wenn dann schon #35

aber bist du in KeyUp, KeyDown oder KeyPress?

Nils_13 22. Feb 2008 19:49

Re: Ord...
 
KeyDown, deshalb dachte ich an Word(#35), bringt aber nichts.

Helmi 22. Feb 2008 19:56

Re: Ord...
 
Hallo,

so gehts:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  //Gibt die Nummer des Zeichens aus
  ShowMessage(IntToStr(Key));

  //prüfen auf #
  If Key = 191 then
    ShowMessage('#');
end;

Nils_13 22. Feb 2008 20:00

Re: Ord...
 
Und wie kommst du auf 191 ?

Helmi 22. Feb 2008 20:03

Re: Ord...
 
Zitat:

Zitat von Nils_13
Und wie kommst du auf 191 ?

Diese Frage sagt mir, dass du den Quellcode nicht getestet hast.

Wenn du es nämlich getan hättest, dann hätte dir die erste ShowMessage beim Drücken von "#" nämlich 191 ausgegeben.

Nils_13 22. Feb 2008 20:04

Re: Ord...
 
Ah, du hast das in OnKeyDown gemacht, das habe ich übersehen. Dann ist nun alles klar, danke :)!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
Seite 1 von 2  1 2      

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