bei den Tasten VK_ wurde zwei mal 46 vergeben kann das sein
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
bei den Tasten VK_ wurde zwei mal 46 vergeben kann das sein
Hallo,
heute habe ich gemerkt das es für ein . 46 ist und für die ENTF Taste die mit VK_DELETET angeben kann....
wenn ich
writeln(ord(key));
ausgebe lasse und dann entf drücke bekomme ich 127 als Ergebnisse
ich prüfe das im onkeyPress Ereignisse
heute habe ich gemerkt das es für ein . 46 ist und für die ENTF Taste die mit VK_DELETET angeben kann....
wenn ich
writeln(ord(key));
ausgebe lasse und dann entf drücke bekomme ich 127 als Ergebnisse
ich prüfe das im onkeyPress Ereignisse
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
nagut: also wenn ich die taste Entf drücke bekomme ich den selben code zurück geliefert wie bei dem Punk(.) in der LCLtype wo diese Tasten Denifert ist ein kleiner Fehler drin. mehr nicht.
Edit: ich sehe gerade das ich das selbe schon oben geschrieben habt.
also mach mal ein Test:
gibt per Writeln den wert von key bei onkeyDown z.b. aus drücke ein Punk und dann drücke die ENTF Taste(ist auf deiner Tastertur neben der Enter Taste)
merk dir die wert und mache jetzt mal eine if abfrage:
if ord(key) = vk_delete then ShowMessage('OK');
und jetzt drück mal das einfache Punkt Zeichen.
Edit: ich sehe gerade das ich das selbe schon oben geschrieben habt.
also mach mal ein Test:
gibt per Writeln den wert von key bei onkeyDown z.b. aus drücke ein Punk und dann drücke die ENTF Taste(ist auf deiner Tastertur neben der Enter Taste)
merk dir die wert und mache jetzt mal eine if abfrage:
if ord(key) = vk_delete then ShowMessage('OK');
und jetzt drück mal das einfache Punkt Zeichen.
Zuletzt geändert von pluto am Sa 21. Apr 2007, 11:49, insgesamt 1-mal geändert.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 19
- Registriert: Mi 4. Apr 2007, 14:32
Dann solltest du wohl mal einen Bug filen:
http://www.freepascal.org/mantis" onclick="window.open(this.href);return false;
http://www.freepascal.org/mantis" onclick="window.open(this.href);return false;
Nää, in OnKeyPress kriegst du den Buchstaben zurück, Punkt ist nun mal ANSI 46. Wenn du die Tastaturcodes haben willst, musst die OnKeyUp / Down nehmen. Dort ist der Key auch nicht als Char sondern als Word definiert.
Zuletzt geändert von theo am Sa 21. Apr 2007, 12:18, insgesamt 1-mal geändert.
Das ist kein Fehler du Nase! Das ist eine andere Tabelle!pluto hat geschrieben:aber 46 ist auch VK_DELETE irgendwas passt da nicht.
musst halt ein ORD(KEY) machen es kann doch nicht sein das ENTF den gleichen code hat für PUNK da passt doch irgendwas nicht.
Edit:
sonst darf man diese VK_ codes gar nicht nutzen. Wenn da noch mehr Fehler drin sind.
ANSI Tabelle Tastaturcode Tabelle.
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Solange du dich weigerst zu verstehen was Schnulli und ich sagen hast du recht.pluto hat geschrieben: Aber lassen wir das. das führt zu nichts
Begreiftst du denn wirklich nicht den Unterschied zwischen Tastaturcode und Zeichensatztabelle?
Vergleiche doch einfach mal, was bei OnKeyPress vs. OnKeyUp rauskommt.
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg