Input
Publié : ven. 25/mars/2005 13:51
				
				Voila une fonction qui remplace KeyboardInkey()
Le gros défaut de KeyboardInkey() c'est qu'on avait pas la possibilitée d'utiliser les majuscules pour les caractères... vous aviez beau appuyer sur '£', ca vous donnait '$'
Eh bien c'est résolu.
Pour commencer voilà une liste et sa structure, indispensables:
Et enfin la fonction elle même:
Et un exemple:
Si vous l'améliorez ou l'optimisez je vous demanderait juste de la reposter ici, afin d'en faire profiter tout le monde
			Le gros défaut de KeyboardInkey() c'est qu'on avait pas la possibilitée d'utiliser les majuscules pour les caractères... vous aviez beau appuyer sur '£', ca vous donnait '$'
Eh bien c'est résolu.
Pour commencer voilà une liste et sa structure, indispensables:
Code : Tout sélectionner
Structure char
  l.s
  u.s
EndStructure
NewList char.char()
AddElement(char())
  char()\l = "&"
  char()\u = "1"
AddElement(char())
  char()\l = "é"
  char()\u = "2"
AddElement(char())
  char()\l = "''"
  char()\u = "3"
AddElement(char())
  char()\l = "'"
  char()\u = "4"
AddElement(char())
  char()\l = "("
  char()\u = "5"
AddElement(char())
  char()\l = "-"
  char()\u = "6"
AddElement(char())
  char()\l = "è"
  char()\u = "7"
AddElement(char())
  char()\l = "_"
  char()\u = "8"
AddElement(char())
  char()\l = "ç"
  char()\u = "9"
AddElement(char())
  char()\l = "à"
  char()\u = "0"
AddElement(char())
  char()\l = ")"
  char()\u = "°"
AddElement(char())
  char()\l = "="
  char()\u = "+"
AddElement(char())
  char()\l = "<"
  char()\u = ">"
AddElement(char())
  char()\l = ","
  char()\u = "?"
AddElement(char())
  char()\l = ";"
  char()\u = "."
AddElement(char())
  char()\l = ":"
  char()\u = "/"
AddElement(char())
  char()\l = "!"
  char()\u = "§"
AddElement(char())
  char()\l = "^"
  char()\u = "¨"
AddElement(char())
  char()\l = "$"
  char()\u = "£"
AddElement(char())
  char()\l = "*"
  char()\u = "µ"
AddElement(char())
  char()\l = "ù"
  char()\u = "%"
Et enfin la fonction elle même:
Code : Tout sélectionner
Procedure.s aInput(msg$)
  If KeyboardPushed(#PB_Key_Back)
    msg$ = Left(msg$ , Len(msg$)-1 )
    Delay(200)
  EndIf
  c$ = KeyboardInkey()
  If KeyboardPushed(#PB_Key_LeftShift)
    ResetList(char())
    While NextElement(char())
      If char()\l = c$ : c$ = char()\u : Break : EndIf
    Wend
  EndIf
  msg$ + c$
  
  ProcedureReturn msg$
EndProcedureCode : Tout sélectionner
InitKeyboard()
InitSprite()
OpenScreen(320,240,16,"")
IncludeFile "input.pb"
Repeat
  ClearScreen(0,0,0)
  ExamineKeyboard()
  msg$ = aInput(msg$)
  StartDrawing(ScreenOutput())
  DrawingMode(1)
  FrontColor(0,255,0)
  Locate(0,0)
  DrawText(msg$+"_")
  StopDrawing()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Si vous l'améliorez ou l'optimisez je vous demanderait juste de la reposter ici, afin d'en faire profiter tout le monde