Inputrequester bei einem Screen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

zigapeda hat geschrieben:Kannst du den code nochmal überprüfen?
Sorry, die Zeile "Name$ + KeyboardInkey()" war auskommentiert.
Hatte ich wohl vergessen, da ich auf Linux was probiert habe, es da
aber KeyboardInkey() noch nicht gibt.


[EDIT]
Ich sehe gerade das KeyboardInkey() noch nicht ausgereift zu
sein scheint.
Buchstaben (groß und klein) gehen ja, aber bei anderen Zeichen
gibt es Probleme. Zeichen wie ! " § $ usw. kann man nicht ein-
geben, da es dort SHIFT ignoriert. '<' ist falsch, '>' geht garnicht.

Am besten baust Du Dir ein eigenes Inkey mit KeyboardPushed()
und KeyboardReleased(). Ist dann halt eine recht große Prozedur
um alle Tasten einzeln abzufragen.

Oder Du erlaubst nur Buchstaben für die Namenseingabe: A-Z, a-z.
Ist vielleicht das einfachste, und für sowas evtl. ausreichend.
Obwohl, Zahlen 0-9 verwendet man ja auch oft in Highscores.
Müsstest dann nur die Stelle "; Input holen" austauschen:

Code: Alles auswählen

  ; Input holen
  Key = Asc(KeyboardInkey())
  If (Key >= 'a' And Key <= 'z') Or (Key >= 'A' And Key <= 'Z') Or (Key >= '0' And Key <= '9') Or Key=' '
    Name$ + Chr(Key)
  EndIf
So ist die Eingabe auf 0-9,A-Z,a-z limitiert. Und Space geht auch.
Sonderzeichen usw. gehen nicht. Nicht schön, aber durchaus ausreichend. ;)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Vielleicht kann sich Andre oder freak mal darum kümmern was
mit KeyboardInkey() los ist. Es sollten da schon alle Tasten
korrekt funktionieren, inkl. '<', '>', '!', '"', usw.

Scheint nur ein SHIFT-Problem zu sein, z.B. '+' geht, '*' (SHIFT+'+') nicht.

Dann noch auf die anderen Systeme portieren und alles wird gut... ;)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Ich hab mal sowas programmiert, weil man mit KeyboardInkey() recht wenig anfangen kann. Außerdem erfolgt die Eingabe hier bereits beim Drücken der Taste und nicht erst beim loslassen, so wie es KeyboardInkey() macht. Zusätzlich wird bei der Routine auch die Backspace-Taste berücksichtigt, wie man es eben von einem Inkey()-Befehl gewohnt ist:

http://forums.purebasic.com/german/viewtopic.php?t=1721
Danilo hat geschrieben:Vielleicht kann sich Andre oder freak mal darum kümmern was
mit KeyboardInkey() los ist. Es sollten da schon alle Tasten
korrekt funktionieren, inkl. '<', '>', '!', '"', usw.
Ich dachte dieser Fehler ist in PB3.93 mit dem Befehl KeyboardMode() behoben worden? Scheinbar funktioniert es immer noch nicht, habs grade mal ausprobiert. Auch wenn ich den KeyboardMode() auf 1 setze, kann ich trotzdem kein ÖÄÜ oder eineige Sonderzeichen eintippen...
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Lebostein hat geschrieben:
Danilo hat geschrieben:Vielleicht kann sich Andre oder freak mal darum kümmern was
mit KeyboardInkey() los ist. Es sollten da schon alle Tasten
korrekt funktionieren, inkl. '<', '>', '!', '"', usw.
Ich dachte dieser Fehler ist in PB3.93 mit dem Befehl KeyboardMode() behoben worden? Scheinbar funktioniert es immer noch nicht, habs grade mal ausprobiert. Auch wenn ich den KeyboardMode() auf 1 setze, kann ich trotzdem kein ÖÄÜ oder eineige Sonderzeichen eintippen...
Wie gesagt, scheint ein SHIFT-Problem zu sein. Kleines ö,ä,ü,ß usw.
funktioniert. Eigentlich funktionieren alle einzelnen Tasten.
MIT SHIFT zusammen gehen aber nur A-Z hier. Wenn ich SHIFT+1
drücke dann kommt eben eine 1 statt eines Ausrufezeichens, und
das ist mit allen Tasten da oben so, auch mit ü,ö,ä und +.
Auch '@' (ALT GR + Q) funktioniert nicht.

'^' gibt scheinbar einen 2-fachen Code zurück,
'°' (SHIFT+^) geht nicht, SHIFT wird ignoriert.

ESC bringt einen Balken, dabei ist ESC ein nicht darstellbares
Zeichen und sollte eigentlich ignoriert werden.

Die numerische Tastatur funktioniert hier auch. Ich kann also
eigentlich nur ein SHIFT- und ALT-GR-Problem sehen.

IMHO sollte das schon noch behoben werden.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

//argh: hab net gesehn das der thread 2 sites hat..
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Jetzt sehe ich so ewig lage cods kann da einer für mich eine Lib machen?

noch was wie könnte ich programmieren das ich die eingabe mit Enter beende?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Habe Fred per Mail über die Problem von KeyboardInkey() informiert.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Und wie soll ich das jetzt in mein Programm einbauen? kleinbuchstaben würden reichen und sonderzeichen brauch ich nicht nur die backspacetaste wäre nicht schlecht und die Returntaste zum bestätigen. um so mehr sachen eingebaut sind umso besser also gut wäre auch großschreibung und sonderzeichen. Das beispiel von lebostein gefällt mir ziemlich gut.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Antworten