VK_ Bezeichnungen bei Keydown-Ereignis.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Niesi »

Leer bei "geschossen" ist gut.
Immer ...

Sorry, war vermutlich ein nicht so tolles Beispiel ... :wink:
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von m.fuchs »

Niesi hat geschrieben:
So 22. Jan 2023, 09:55
Zum Schießen mit diversen Waffen ...

P = Panzerkanone
H = Handgranate
R = Raketenwerfer
Das ist der Grund, warum die Belegung bei den meisten Spielen konfigurierbar ist. Der User drückt die Taste die es sein soll und der entsprechende Code wird gespeichert. Damit gibt es dann auch keine Verwirrung mehr um die VK-Codes.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Mathias »

Niesi hat geschrieben:
So 22. Jan 2023, 09:55
Zum Schießen mit diversen Waffen ...

P = Panzerkanone
H = Handgranate
R = Raketenwerfer

... oder?
Da ist eher das OnKeyPress gefragt. Dort ist es egal, welche Ländereinstelung man hat.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von m.fuchs »

Mathias hat geschrieben:
So 22. Jan 2023, 12:12
Niesi hat geschrieben:
So 22. Jan 2023, 09:55
P = Panzerkanone
H = Handgranate
R = Raketenwerfer
Da ist eher das OnKeyPress gefragt. Dort ist es egal, welche Ländereinstelung man hat.
Bei den oben genannten schon. Aber wenn noch M = Maschinengewehr dazu kommt, will man beim Drücken der Taste das Dauerfeuer starten und beim Loslassen beenden.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von theo »

Jetzt sind wir schon auf Seite 2 mit Spekulationen und haben immer noch keinen blassen Schimmer, worum es haderlump eigentlich geht. :wink:
Eigentlich wollte er ja nur wissen, wo man die Tastaturcodes findet und wie man die nennt.

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Niesi »

Meinst Du das?

https://www.freepascal.org/docs-html/rt ... state.html

LCLType ab Zeile 404

So hab' ich alles gefunden - ich finde es teilweise etwas verwirrend oder auch durcheinander, aber es scheint eindeutig zu sein. Die Werte passten auf der englischen und der deutschen (Notebook-) Tastatur richtig zueinander ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Winni »

Niesi hat geschrieben:
So 22. Jan 2023, 14:48
LCLType ab Zeile 404

So hab' ich alles gefunden - ich finde es teilweise etwas verwirrend oder auch durcheinander, aber es scheint eindeutig zu sein.
Hi!

Vermutung:

Das ging in älteren Versionen nur bis ScrollLock. Und dann kamen der DreifachClik (noch nie gesehen) sowie die Windows- und Apple-Taste hinzu (Extra1 und Extra2).

Und aus Kompatibilitäts-ERwägungen hat man die hinten angeflickt. Falls jemand was mit ord() betreibt.

Winni

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Niesi »

Mathias hat geschrieben:
So 22. Jan 2023, 08:40
Ich habe es noch ein bisschen verbessert, jetzt wird auch angezeigt, wen mehrere Shifttasten auf einmal gedrückt sind.

Code: Alles auswählen

  bufShift:='';
  if ssShift in Shift then bufShift := 'ShiftPressed ';
  if ssCaps in Shift  then bufShift += 'CapsPressed ';
  if ssAlt in Shift   then bufShift += 'AltPressed ';
  if ssCtrl in Shift  then bufShift += 'CtrlPressed ';  

Das ist tatsächlich RICHTIG gut ...

Danke
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Winni »

Hi!

Das geht mit weniger Getippe!

Code: Alles auswählen

var
 se: TShiftStateEnum;
 bufshift,s : string;                 
...
 for se in shift do
     begin
     writeStr(s,se);
     bufshift:= bufshift+#32+s;
     end;               
...
Immer auf der Suche nach kurzen Lösungen

Winni

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Mathias »

Code: Alles auswählen

 writeStr(s,se);
Das kannte ich bis jetzt noch nicht.
So in der Schnelle eine Zahl formatieren.

Code: Alles auswählen

  WriteStr(s, 123.456: 10: 5);
  Caption := s;   
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Winni »

Mathias hat geschrieben:
Mo 23. Jan 2023, 17:55

Code: Alles auswählen

 writeStr(s,se);
Das kannte ich bis jetzt noch nicht.
So in der Schnelle eine Zahl formatieren.

Code: Alles auswählen

  WriteStr(s, 123.456: 10: 5);
  Caption := s;   
Hi!

Dafür langt str

Code: Alles auswählen

str(num:10:5, myString);
Winni

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Mathias »

str() kann auch mit Enum umgehen. Mometan sehe also keinen Vorteil von WriteStr gegenüber str.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von Winni »

Hi!

Writestr ist ISO extended Pascal.

Winni

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von PascalDragon »

Mathias hat geschrieben:
Mo 23. Jan 2023, 19:26
str() kann auch mit Enum umgehen. Mometan sehe also keinen Vorteil von WriteStr gegenüber str.
Für einen einzelnen Wert hat es tatsächlich keinen Vorteil, allerdings beherrscht WriteStr eine beliebige Anzahl an Parametern wie Write/WriteLn. Das heißt, wenn du einen komplexeren String zusammen baust, kann WriteStr sinnvoller sein.
FPC Compiler Entwickler

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: VK_ Bezeichnungen bei Keydown-Ereignis.

Beitrag von haderlump »

Ja, liebe Freunde. Ich hatte gedacht, dass ich vor ein paar Tagen eine Dankmessage an euch geschickt hätte, kam aber hier nicht an. Vielleicht habe ich vergessen sie abzuschicken.
Auf alle Fälle nochmals vielen Dank, es war sehr aufschlussreich.

Was wollte ich?
Ich möchte meinem Enkel (10) das Programmieren näher bringen. Als Lernobjekt habe ich mir gedacht, einen Taschenrechner zu programmieren. Da drückt man ja auch Tasten, und um diese Tasten ist es gegangen.
Dass man dazu eine entsprechende Behandlungsroutine schreiben muss ist ja klar.
Mir ging es eigentlich nur um die VK_... Bezeichnungen. Und das habe ich dank eurer Hilfe gecheckt.

Gruß Fritz

Antworten