bei den Tasten VK_ wurde zwei mal 46 vergeben kann das sein

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Den Zusammenhang versteh ich jetzt nicht. Die Acscii Tabelle hat doch nichts mit dem Keyboard zu tun !!!
Genau darum gings doch oder nicht ?!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
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

Beitrag von schnullerbacke »

@Christian

Nee, @pluto wirft den ASCII-Tableindex eines Zeichens und den VK_-Wert einer Taste durcheinander. Deswegen hat ord('.') = VK_ENTF was natürlich nicht stimmt. @pluto müßte da schon den VK_-Wert der Taste nehmen die zur Rückgabe des Zeichens '.' führt. der ist nämlich sicherlich 46.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Antrepolit »

Schon ziemlich lustig. :lol:
Früher, als die Pascal-Compiler laufen lernten, da musste man unter DOS differenzieren,
obe man den Tastencode $46 oder $046 hatte. Das eine setzte ne gedrückte Alt-Taste voraus,
das andere nicht. Aber so viel diskussion um ne verwechselte Tabelle? :cry:

Traurig...
Grüße, Antrepolit

care only if your os is really burning

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Sind ja traurigerweise mittlerweile mehrere verwechselte Tabellen das Tastaturlayout hat ja mit der ASCII Tabelle gar nichts am hut...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
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)

Beitrag von pluto »

ja schon klar und ich rede ja auch von der ASCI Tabelle.
lassen wir es einfach ! ich verstehe das nicht und gut ist. Was sollst.
Für mich ist das ein Fehler wobei das bisher nur einmal vorgekommen ist beim . und VK_DELETE
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben:ja schon klar und ich rede ja auch von der ASCI Tabelle.
lassen wir es einfach ! ich verstehe das nicht und gut ist. Was sollst.
Für mich ist das ein Fehler wobei das bisher nur einmal vorgekommen ist beim . und VK_DELETE
Dass OnKeyUp und OnKeyPress nicht dieselben Codes zurückgeben sollte nun klar sein.

Was aber tatsächlich etwas seltsam ist, ist dass das drücken der Delete Taste überhaupt ein OnKeyPress Event auslöst (GTK), während z.B. die Insert Taste keins auslöst.
Hat da jemand eine Erklärung?

Kann man einfach testen:

Code: Alles auswählen

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  writeln('Press: ',Ord(Key));
end;
 
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  writeln('Up: ',Key);
end;

pluto
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)

Beitrag von pluto »

was ich mich noch wunder ist das wenn ich bei onkeydown die Buchstaben haben möchte und mit ord(key) mir sie anzeigen lassen, bekomme ich nur Große Buchstaben. Hängt das damit zusammen ? ich dachte immer sobald eine Taste gedrückt wird, wird onKeyDown und dann wenn sie länger gedrückt wird onKeyPress und wenn ich sie wieder loslasse onkeyUp auslöst. Aber anscheinend hat das onKeyDown Ereignisse eine andere Bedeutung.
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben:was ich mich noch wunder ist das wenn ich bei onkeydown die Buchstaben haben möchte und mit ord(key) mir sie anzeigen lassen, bekomme ich nur Große Buchstaben.
Davon reden wir doch die ganze Zeit. Dämmert's jetzt endlich?
Aber du sagst das falsch! Bei OnKeyDown/Up kriegst du nicht den Buchstaben sondern die TASTE!!! Bei OnKeyPress kriegst du den Buchstaben!
Wenn du z.B. auf die Taste "P" drückst, kriegst du im Parameter Key bei OnKeyDown/Up nur zurück, dass du die Taste "P" (VK_P) gedrückt hast. Ob das ein grosses oder kleines "P" oder sonstwas ist, hängt vom Shiftstate ab.
Dass die Taste "P" also VK_P den gleichen numerischen Wert hat wie ASCII "P" ist hier eher "Zufall".
Wenn du ein "ü" drückst, hat's gar nichts mehr mit ASCII/ANSI zu tun.
Endlich kapiert?

pluto
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)

Beitrag von pluto »

wenn das so ist ist das jetzt klar geworden, danke!
MFG
Michael Springwald

schnullerbacke
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

Beitrag von schnullerbacke »

@theo

Hast du das schonmal mit nem Eingabeobjekt probiert?
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

schnullerbacke hat geschrieben:@theo

Hast du das schonmal mit nem Eingabeobjekt probiert?
Was meinst denn du damit?

schnullerbacke
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

Beitrag von schnullerbacke »

@theo

TEdit aufs Formular und dann die entsprechend Events bestücken. Insert wird vom Formular möglicherweise nicht abgefangen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Das verhält sich genau gleich.
Das Problem ist aber nicht, dass ich ein Event zuwenig habe sondern meiner Ansicht nach eins zuviel! Warum soll DELETE ein OnKeyPress Event auslösen (Char 127)?
Das ist ja gar kein Buchstabe. Kylix macht das nicht.

pluto
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)

Beitrag von pluto »

naja, schön das wir jetzt einer Meinung sind. Das kam mir nämlich spanisch vor. *G*

evlt. ist das aber auch Absicht oder ?
Aber wenn das so gedacht ist wie du es gesagt hast Theo frage ich mich warum bei onKeydown ein . Event erzeugt wird.
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben: evlt. ist das aber auch Absicht oder ?
Aber welche? Kylix macht's wie gesagt nicht.
pluto hat geschrieben: Aber wenn das so gedacht ist wie du es gesagt hast Theo frage ich mich warum bei onKeydown ein . Event erzeugt wird.
Aber du hast's jetzt schon begriffen oder immer noch nicht so richtig?
Ich rede von OnKeyPress. Bei OnKeyDown/Up muss es immer ein Event auslösen, wenn eine Taste gedrückt wird.

Antworten