Page 1 sur 1

INKEY() , PRINT() dans un OPENWINDOW()

Publié : jeu. 29/janv./2004 20:00
par Patrick88
les fonctions Winput et KeyPressed peuvent (peut) être utilsée en mode plein écran... à essayer

Code : Tout sélectionner

global col.w,lig.w 

;- affiche un texte sur la ligne courante
Procedure WPrint(t$)
  If CreateGadgetList(WindowID(#RUNBASIC))
    TextGadget(#GDT_TEXT,col,lig,Len(t$)*8,20,t$)
  EndIf
EndProcedure

;- affiche un texte sur la ligne courante et passe à la ligne suivante
Procedure WprintN(t$)
  If CreateGadgetList(WindowID(#RUNBASIC))
    TextGadget(#GDT_TEXT,col,lig,Len(t$)*8,20,t$):lig+20
  EndIf
EndProcedure

;- attend la frappe d'une touche et renvoie le code de la touche
Procedure.w WInkey()
  Repeat 
    event = WaitWindowEvent()  
    Select event
      Case #WM_KEYDOWN 
        ;; l'utilisateur a appuyée sur une touche ?
        result = EventwParam()
    EndSelect 
  Until event=#WM_KEYDOWN
  ProcedureReturn result
EndProcedure

;- attend la frappe de n'importe quelle touche
Procedure Keypressed()
  While WInkey()=0:Wend
EndProcedure

;test
col=0:lig=0
If OpenWindow(0,0,0,640,480,#PB_Window_BorderLess,"")
    WprintN("")
    WprintN("Interpretation du programme <shmaul.bas> ...")
    WprintN("")
     WprintN("")
    WprintN("Pressez une touche pour terminer"):Keypressed()
    WprintN("")
EndIf
patrick

Publié : jeu. 29/janv./2004 20:37
par Heis Spiter
Ton #RUNBASIC, il en veut pas....
[EDIT]Je viens de "corriger" le code

Code : Tout sélectionner

;- déclaration des constantes
Enumeration
  #RUNBASIC
  #GDT_TEXT
EndEnumeration

Global col.w,lig.w 

;- affiche un texte sur la ligne courante 
Procedure WPrint(t$) 
  If CreateGadgetList(WindowID(#RUNBASIC)) 
    TextGadget(#GDT_TEXT,col,lig,Len(t$)*8,20,t$) 
  EndIf 
EndProcedure 

;- affiche un texte sur la ligne courante et passe à la ligne suivante 
Procedure WprintN(t$) 
  If CreateGadgetList(WindowID(#RUNBASIC)) 
    TextGadget(#GDT_TEXT,col,lig,Len(t$)*8,20,t$):lig+20 
  EndIf 
EndProcedure 

;- attend la frappe d'une touche et renvoie le code de la touche 
Procedure.w WInkey() 
  Repeat 
    event = WaitWindowEvent()  
    Select event 
      Case #WM_KEYDOWN 
        ;; l'utilisateur a appuyée sur une touche ? 
        result = EventwParam() 
    EndSelect 
  Until event=#WM_KEYDOWN 
  ProcedureReturn result 
EndProcedure 

;- attend la frappe de n'importe quelle touche 
Procedure Keypressed() 
  While WInkey()=0:Wend 
EndProcedure 

;test 
col=0:lig=0 
If OpenWindow(0,0,0,640,480,#PB_Window_BorderLess,"") 
    WprintN("") 
    WprintN("Interpretation du programme <shmaul.bas> ...") 
    WprintN("") 
     WprintN("") 
    WprintN("Pressez une touche pour terminer"):Keypressed() 
    WprintN("") 
EndIf 
:wink: c'était juste ca ![/EDIT]