Code Menu ne fonctionne pas

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Code Menu ne fonctionne pas

Message 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

;****************************************************
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re- Code Menu ne fonctionne pas

Message 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
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message 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.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre