AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

case Key of ... Großbuchstaben

Ein Thema von Major1337 · begonnen am 8. Dez 2009 · letzter Beitrag vom 8. Dez 2009
Antwort Antwort
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#1

case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 13:31
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';
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 13:33
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 13:35
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:
case Key of
  'a','A': Machwas();
  'b','B': Machwasanderes();
  ...
end;
Oder Du wandelst den ASCII-Code mit Chr() in Zeichen bzw. Zeichen mit Ord() in ASCII-Code um.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 13:44
Tabellen: Bei Google suchenASCII oder Startmenü\Programme\Zubehör\Systemprogramme\Zeiche ntabelle (bzw. Startmenü > Ausführen "charmap")

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 Key of
  'a','A': Machwas();
  'b','B': Machwasanderes();
  ...
end;
analog zu DeddyHs Code ginge auch swas
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:
//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;
[edit] UpperCase gegen UpCase getauscht
$2B or not $2B
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 13:57
Delphi-Referenz durchsuchenUpperCase() -> Delphi-Referenz durchsuchenUpCase()
  Mit Zitat antworten Zitat
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#6

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 14:03
danke ich habe so eine Lösung alá


Delphi-Quellcode:
case Key of
  'a','A': Machwas();
  'b','B': Machwasanderes();
  ...
end;
gesucht. Merci!
  Mit Zitat antworten Zitat
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#7

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 14:29
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';
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 14:37
Such doch mal nach EnterText in der CodeLib, da hat Jens das IIRC schön gelöst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#9

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 14:39
Hi,
warum so kompliziert:

    221 : Memo.Text := Memo.Text + ']'; ist das Gleiche wie:

    memo.text:=Memo.text + chr(221); Wobei du jetzt die 223 auch variabel machen könntest:

    memo.text:=Memo.text + chr(n); Kannst dir damit den ganzen case sparen!

Grüsse
rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#10

Re: case Key of ... Großbuchstaben

  Alt 8. Dez 2009, 14:58
Hallo

optimal, optimaler, am optimalsten ?:

Delphi-Quellcode:
      case Key of
        222 : Memo.Text := Memo.Text + Chr(39);
        else Memo.Text := Memo.Text + chr(Key);
        end;
Gruss Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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