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

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 8)
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 .. :oops:
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