Seite 1 von 3
Großschreibung bei Texteingabe im Vollbild unter Linux
Verfasst: 09.08.2006 13:33
von zoidberg
Hallo!
Ich bekomm es (unter Linux : eingefügt von bobobo) einfach nicht hin bei einer Eingabe im Vollbild mit Hilfe von KeyboardInkey() auch Großbuchstaben anzunehmen und die Sondertasten wie "Alt" oder "Shift" zu erkennen.
Ich habe das Beispiel aus dem Codearchiv verwendet.
Danke !
Gruß, Zoidberg
Verfasst: 09.08.2006 15:02
von AND51
Kannst du das nicht auch per API?
Dann gibt's dafür den befehl getAsyncKeyState_() mit den #VK_* Konstanten.
Verfasst: 09.08.2006 15:34
von bobobo
kack einen auf Api
aus der Hilfe für inkey()
Code: Alles auswählen
If OpenConsole()
PrintN("Druecken Sie Escape zum Beenden.")
Repeat
KeyPressed$ = Inkey()
If KeyPressed$ <> ""
PrintN("Sie drueckten: " + KeyPressed$)
PrintN("Diese hat einen Roh-Code von: "+Str(RawKey()))
ElseIf RawKey()
PrintN("Sie haben eine Nicht-Ascii Taste gedrueckt.")
PrintN("Diese hat einen Roh-Code von: "+Str(RawKey()))
Else
Delay(20) ; Wir verbrauchen nicht die gesamte CPU-Leistung, da wir uns auf einem Multitasking-OS befinden
EndIf
Until KeyPressed$ = Chr(27) ; Wartet, bis Escape gedrückt wird
EndIf
Verfasst: 09.08.2006 16:20
von PBZecke
kack einen auf Console
Ich glaube er benötigt eher was im Screen
KeyboardPushed(#PB_Key_RightShift) oder KeyboardReleased(#PB_Key_RightShift) sollte doch gehen um zb. die rechte
Shift-Taste zu erkennen.
Verfasst: 09.08.2006 16:21
von Tafkadasom2k5
PBZecke hat geschrieben:kack einen auf Console

Da hat einer nicht verstanden, dass das nur ein POC war.. -.-
Edit:
Oder funzt der Inkey() nur in der Konsole?!
Verfasst: 09.08.2006 16:23
von PBZecke
Was ist ein POC?
Nachtrag:
Inkey() ist ja ein Consolen-Befehl also sollte er eigentlich auch nur
da gehen, habs aber nicht probiert...
Nachtrag 2:
Habs jetzt doch probiert, und war eigentlich klar, geht nur in Console, und
das suchte ZOIDBERG so glaube ich jedenfalls, nicht!
Verfasst: 09.08.2006 16:28
von Tafkadasom2k5
Proof of concept..
Aber wenn das ein einziger Konsolenbefehl ist, dann fällt ist auch der POC ein wenig nutzlos ^^
Gr33tz
Tafkadasom2k5
Verfasst: 09.08.2006 17:33
von bobobo
jepp ..
Und zur Strafe hab ich das mitgelieferte PB4-Beispiel für KeyboardInkey()
aus der Hilfe angeguckt, getest und für gut genug befunden es dem zoidberg höflich an den Kopf zu werfen.

Re: Großschreibung bei Texteingabe im Vollbild
Verfasst: 09.08.2006 18:11
von Kaeru Gaman
zoidberg hat geschrieben:KeyboardInkey()
und KeyboardInkey() is Screen und verarbeitet Alphanumerische Zeichen,
die ExamineKeyboard() gefangen hat.
wie PBZecke geschrieben hat:
> KeyboardPushed(#PB_Key_RightShift)
gibts auch für LeftShift
das fragst du zuerst ab, und setzt ein flag.
wenn dein Zeichen, das du von KeyboardInkey() bekommst, dann Alphabetisch ist,
setzt du ein UCase() drüber,
für 49-56 rechnest du -16, musst halt mal mit der ASCII-Rabelle jonglieren.
aber grundsätzlich musst du es direkt verarbeiten.
PS:
ich seh grad, bei mir im 4.0 gehts, Großbuchstaben werden angenommen.
vielleicht ist dein Problem doch noch anders gelagert?
Verfasst: 10.08.2006 08:44
von zoidberg
Also ich werde das so versuchen wie ihr sagt. Das left und right shift abfragen und mit Hilfe der Ascii Tabelle kontrollieren was der User gedrückt hat.
Ich hab PB 3.94 für Linux im Einsatz, ich weiß also nicht wie das Beispiel von Bonobo aussieht. Die Beispiele die ich dabei hatte hatten das nicht berücksichtigt. Nur das "gib etwas Text ein" Beispiel und das bezog sich nur auf die Eingabe generell.
Ich werd mal versuchen mir das heute Abend anzuschauen.
Die Highscore ist das einzige was noch zu meinem Spiel fehlt.
Danke !
Gruß, Zoidberg