Page 1 sur 1

Code Menu ne fonctionne pas

Publié : jeu. 31/janv./2008 17:34
par langa68
Bonjour à tous,

Généralité :
J’ai fait une petite partie de programme avec des Menus me permettant de naviger plus tard dans un programme plus compliqué.

Voici mon problème :
La touche >B- renvoie à la procédure “ Choix_des_jeux() ”, mais la couleur de fond demandée dans “ ConsoleColor(10,15) ” ne fonctionne pas.
Pouvez vous corriger mon code de façon à ce qu’il fonctionne.
Je vous remercie par avance.

Langa68

Code :

Code : Tout sélectionner

OpenConsole()
EnableGraphicalConsole(1)
  
;**************************************************** 

;Déclaration des variables
 Global Question$
;****************************************************

;Déclaration des procédures

Declare Menu_Principal()
Declare Choix_des_jeux()

Declare Module_non_disponible()

;****************************************************

;Appel des procédures

Menu_principal()
Choix_des_jeux()

;****************************************************

;Menu Principal

Procedure Menu_principal()
 
 ClearConsole()
 ConsoleColor(10,15) 
 ConsoleTitle("Menu Principal")

	If OpenConsole()
		ConsoleLocate (0,1)
		PrintN("                                                                               ")
		PrintN("                         Vous avez les choix suivants                          ")
		PrintN("                                                                               ")
			 
		ConsoleLocate (0,5)
		PrintN("                                   ")
		ConsoleLocate (0,6)
		PrintN("     >A- Initialiser le Jeu        ")
		ConsoleLocate (0,7)
		PrintN("                                   ")

		ConsoleLocate (44,5)
		PrintN("                                   ")
 		ConsoleLocate (44,6)
 		PrintN("        >B- choix des jeux         ")
 		ConsoleLocate (44,7)
 		PrintN("                                   ")			 
 
 		PrintN("")
		PrintN("                                                                               ")
		PrintN("                                  >Q- Quitter                                  ")
			 PrintN("                                                                               ")
			  			 
    Repeat
      Question$ = Inkey()
      
      If Question$= "A" Or Question$= "a"
           	Module_non_disponible()
      	ElseIf Question$= "B" Or Question$= "b"
  			Choix_des_jeux()
      	ElseIf Question$= "C" Or Question$= "c"
  			Module_non_disponible()
  		ElseIf Question$= "D" Or Question$= "d"
  			Module_non_disponible()
  		ElseIf Question$= "Q" Or Question$= "q"
  			End          
      Else
        Delay(20)
      EndIf
    
    Until Question$ = Chr(27) ; Attends jusqu'à ce que la touche [Echap] soit appuyée
  EndIf
  
EndProcedure

MessageRequester("Information","Fin!")
;****************************************************

;Choix des jeux

Procedure Choix_des_jeux()

ClearConsole()
ConsoleColor(10,15)  
ConsoleTitle("Choix des jeux")  
 
	If OpenConsole()

		ConsoleLocate (0,1)
		PrintN("                                                                               ")
		PrintN("                         Vous avez les choix suivants                          ")
		PrintN("                                                                               ")
			 
		ConsoleLocate (0,5)
		PrintN("                                   ")
		ConsoleLocate (0,6)
		PrintN("            >A- Jeu A              ")
		ConsoleLocate (0,7)
		PrintN("                                   ")

 			 ConsoleLocate (44,5)
 		PrintN("                                   ")
 		ConsoleLocate (44,6)
 		PrintN("            >B- Jeu B              ")
 		ConsoleLocate (44,7)
 		PrintN("                                   ")
			 
		ConsoleLocate (0,9)
		PrintN("                                   ")
		ConsoleLocate (0,10)
		PrintN("            >C- Jeu C              ")
		ConsoleLocate (0,11)
		PrintN("                                   ")

 		ConsoleLocate (44,9)
 		PrintN("                                   ")
 		ConsoleLocate (44,10)
 		PrintN("            >D- Jeu D              ")
 		ConsoleLocate (44,11)
 		PrintN("                                   ")

		ConsoleLocate (0,13)
		PrintN("                                   ")
		ConsoleLocate (0,14)
		PrintN("            >E- Jeu E              ")
		ConsoleLocate (0,15)
		PrintN("                                   ")

 		ConsoleLocate (44,13)
 		PrintN("                                   ")
 		ConsoleLocate (44,14)
 		PrintN("            >F- Jeu F              ")
 		ConsoleLocate (44,15)
 		PrintN("                                   ")
			 
		ConsoleLocate (0,17)
		PrintN("                                   ")
		ConsoleLocate (0,18)
		PrintN("           >G-                     ")
		ConsoleLocate (0,19)
		PrintN("                                   ")

 		ConsoleLocate (44,17)
 		PrintN("                                   ")
 		ConsoleLocate (44,18)
 		PrintN("          >Q- Quitter              ")
 		ConsoleLocate (44,19)
 		PrintN("                                   ")
 			 
 		PrintN("")
		PrintN("                                                                               ")
		PrintN("                          >R- Retour au menu principal                         ")
		PrintN("                                                                               ")
			  			 
    	Repeat
      	Question$ = Inkey()
      
      If Question$= "A" Or Question$= "a"
      		Module_non_disponible()
      	ElseIf Question$= "B" Or Question$= "b"
  			Module_non_disponible()
      	ElseIf Question$= "C" Or Question$= "c"
  			Module_non_disponible()
  		ElseIf Question$= "D" Or Question$= "d"
  			Module_non_disponible()
  		ElseIf Question$= "E" Or Question$= "e"
  			Module_non_disponible()
  		ElseIf Question$= "F" Or Question$= "f"
  			Module_non_disponible()
  		ElseIf Question$= "G" Or Question$= "g"
  			Module_non_disponible()
  		ElseIf Question$= "R" Or Question$= "r"
  			Menu_principal()
  		ElseIf Question$= "Q" Or Question$= "q"
  		End          
      Else
        Delay(20)
      EndIf
    
    Until Question$ = Chr(27) ; Attends jusqu'à ce que la touche [Echap] soit appuyée
  EndIf
  
EndProcedure

;**************************************************** 

;Module non disponible
 
Procedure Module_non_disponible()

ClearConsole()
ConsoleColor(4,15)
PrintN("CE MODULE N'EST PAS ENCORE DISPONIBLE !!! ")
PrintN("")
;Choix_des_jeux()

EndProcedure

;****************************************************

Publié : jeu. 31/janv./2008 18:44
par Le Soldat Inconnu
Inverse ConsoleColor(10,15) et ClearConsole()

Mets d'abord ConsoleColor(10,15) puis ClearConsole()

j'espère que c'est ca ton soucis

Re- Code Menu ne fonctionne pas

Publié : ven. 01/févr./2008 11:14
par langa68
Merci Le Soldat Inconnu,

Cela fonctionne à merveille. Je n'ai rien trouvé à ce sujet dans la doc.
Etant un ancien du MSX Basic et du GW Basic, j'ai pensé qu'il vallait mieux d'abord éffacer la console avant de lui indiquer les atributs des couleurs.

Merci pour ton aide.

Langa68

Publié : ven. 01/févr./2008 11:54
par comtois
si, si , regarde bien.
Syntaxe

ClearConsole()

Description

Efface tout le contenu de la console. Le fond d'écran est déterminé par ConsoleColor(). La console doit être en mode graphique.