![]() |
case Key of ... Großbuchstaben
Hey,
gibt es eine Tabelle in der ich nachschauen kann welchen "Key" die Großbuchstaben von A-Z haben: Hier mal 2 Beispiele (aber sind für Kleinbuchstaben) 87 = 'w'; 90 = 'z'; |
Re: case Key of ... Großbuchstaben
Ist Key der Scancode der Taste oder der ASCII Code?
Wenn es der Scancode ist müsstest Du prüfen of die "Shift-Taste" gedrückt ist. Ansonsten ASCII-Tabelle. |
Re: case Key of ... Großbuchstaben
IIRC haben die Großbuchstaben einen um 32 kleineren ASCII-Code als die Kleinbuchstaben. Wenn es aber nur um case-Labels geht, kannst Du das auch so machen:
Delphi-Quellcode:
Oder Du wandelst den ASCII-Code mit Chr() in Zeichen bzw. Zeichen mit Ord() in ASCII-Code um.
case Key of
'a','A': Machwas(); 'b','B': Machwasanderes(); ... end; |
Re: case Key of ... Großbuchstaben
Tabellen:
![]() Insgesamt wäre es aber erstmal besser zu sagen, wofür du es genau brauchst, denn erst dann kann man eine optimale Lösung finden. Zitat:
Delphi-Quellcode:
case Char(Ord(Key) or $20) of
'a': Machwas(); 'b': Machwasanderes(); ... end;
Delphi-Quellcode:
case Char(Ord(Key) and not $20) of
'A': Machwas(); 'B': Machwasanderes(); ... end;
Delphi-Quellcode:
[edit] UpperCase gegen UpCase getauscht
//case UpperCase(Key)[1] of // wobei das hier nicht grad optimal wäre
case UpCase(Key) of // so isses doch besser ... danke Muetze1 'A': Machwas(); 'B': Machwasanderes(); ... end; |
Re: case Key of ... Großbuchstaben
|
Re: case Key of ... Großbuchstaben
danke ich habe so eine Lösung alá
Delphi-Quellcode:
gesucht. Merci!
case Key of
'a','A': Machwas(); 'b','B': Machwasanderes(); ... end; |
Re: case Key of ... Großbuchstaben
Hmm.. ich möchte es jetzt doch anderes Lösen ;-)
Ich möchte gerne das Drücken der Tasten aufzeichen, es klappt auch alles wunderbar, ich habe nur Probleme beim Anzeigen der Zeichen ö @ ? und noch anderen und halt die Unterscheidung zwischen Groß- und Kleinschreibung.
Delphi-Quellcode:
case Key of
// VK_RETURN : Memo.Text := Memo.Text + ' [Enter] '; // VK_BACK : Memo.Text := Memo.Text + ' [Backspace] '; // VK_ESCAPE : Memo.Text := Memo.Text + ' [Esc] '; // VK_SHIFT : Memo.Text := Memo.Text + ' [Shift] '; // VK_MENU : Memo.Text := Memo.Text + ' [Alt] '; // VK_CONTROL : Memo.Text := Memo.Text + ' [Strg] '; // VK_DELETE : Memo.Text := Memo.Text + ' [Delete] '; VK_SPACE : Memo.Text := Memo.Text + ' '; VK_MULTIPLY : Memo.Text := Memo.Text + '*'; VK_ADD : Memo.Text := Memo.Text + '+'; VK_SUBTRACT : Memo.Text := Memo.Text + '-'; VK_DECIMAL : Memo.Text := Memo.Text + '.'; VK_DIVIDE : Memo.Text := Memo.Text + '/'; 188 : Memo.Text := Memo.Text + ','; 192 : Memo.Text := Memo.Text + '>'; 222 : Memo.Text := Memo.Text + Chr(39); 220 : Memo.Text := Memo.Text + ''; 219 : Memo.Text := Memo.Text + '['; 221 : Memo.Text := Memo.Text + ']'; 186 : Memo.Text := Memo.Text + ';'; 191 : Memo.Text := Memo.Text + '/'; 190 : Memo.Text := Memo.Text + '.'; 44 : Memo.Text := Memo.Text + ','; 187 : Memo.Text := Memo.Text + '='; 189 : Memo.Text := Memo.Text + '-'; 65 : Memo.Text := Memo.Text + 'a'; 66 : Memo.Text := Memo.Text + 'b'; 67 : Memo.Text := Memo.Text + 'c'; 68 : Memo.Text := Memo.Text + 'd'; 69 : Memo.Text := Memo.Text + 'e'; 70 : Memo.Text := Memo.Text + 'f'; 71 : Memo.Text := Memo.Text + 'g'; 72 : Memo.Text := Memo.Text + 'h'; 73 : Memo.Text := Memo.Text + 'i'; 74 : Memo.Text := Memo.Text + 'j'; 75 : Memo.Text := Memo.Text + 'k'; 76 : Memo.Text := Memo.Text + 'l'; 77 : Memo.Text := Memo.Text + 'm'; 78 : Memo.Text := Memo.Text + 'n'; 79 : Memo.Text := Memo.Text + 'o'; 80 : Memo.Text := Memo.Text + 'p'; 81 : Memo.Text := Memo.Text + 'q'; 82 : Memo.Text := Memo.Text + 'r'; 83 : Memo.Text := Memo.Text + 's'; 84 : Memo.Text := Memo.Text + 't'; 85 : Memo.Text := Memo.Text + 'u'; 86 : Memo.Text := Memo.Text + 'v'; 87 : Memo.Text := Memo.Text + 'w'; 88 : Memo.Text := Memo.Text + 'x'; 89 : Memo.Text := Memo.Text + 'y'; 90 : Memo.Text := Memo.Text + 'z'; VK_NUMPAD0 : Memo.Text := Memo.Text + '0'; VK_NUMPAD1 : Memo.Text := Memo.Text + '1'; VK_NUMPAD2 : Memo.Text := Memo.Text + '2'; VK_NUMPAD3 : Memo.Text := Memo.Text + '3'; VK_NUMPAD4 : Memo.Text := Memo.Text + '4'; VK_NUMPAD5 : Memo.Text := Memo.Text + '5'; VK_NUMPAD6 : Memo.Text := Memo.Text + '6'; VK_NUMPAD7 : Memo.Text := Memo.Text + '7'; VK_NUMPAD8 : Memo.Text := Memo.Text + '8'; VK_NUMPAD9 : Memo.Text := Memo.Text + '9'; 48 : Memo.Text := Memo.Text + '0'; 49 : Memo.Text := Memo.Text + '1'; 50 : Memo.Text := Memo.Text + '2'; 51 : Memo.Text := Memo.Text + '3'; 52 : Memo.Text := Memo.Text + '4'; 53 : Memo.Text := Memo.Text + '5'; 54 : Memo.Text := Memo.Text + '6'; 55 : Memo.Text := Memo.Text + '7'; 56 : Memo.Text := Memo.Text + '8'; 57 : Memo.Text := Memo.Text + '9'; |
Re: case Key of ... Großbuchstaben
Such doch mal nach EnterText in der CodeLib, da hat Jens das IIRC schön gelöst.
|
Re: case Key of ... Großbuchstaben
Hi,
warum so kompliziert:
Delphi-Quellcode:
ist das Gleiche wie:
221 : Memo.Text := Memo.Text + ']';
Delphi-Quellcode:
Wobei du jetzt die 223 auch variabel machen könntest:
memo.text:=Memo.text + chr(221);
Delphi-Quellcode:
Kannst dir damit den ganzen case sparen!
memo.text:=Memo.text + chr(n);
Grüsse rainer |
Re: case Key of ... Großbuchstaben
Hallo
optimal, optimaler, am optimalsten ?:
Delphi-Quellcode:
Gruss Reinhard
case Key of
222 : Memo.Text := Memo.Text + Chr(39); else Memo.Text := Memo.Text + chr(Key); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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