IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Comment creer un nombre variable d'emplacement pour des boutons


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Comment creer un nombre variable d'emplacement pour des boutons
    Bonjour à tous,

    En fait, je dois creer un nombre non constant de bouton actif pour mon programme alors je crée tout d'abord un menu auquel j'attribue un nombre de bouton variable.Je dois donc, par la suite, creer des case pour mettre ces boutons. J'ai donc voulu faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    MenuConsole InitialisationMenuBis (int n) 
    {
    	MenuConsole M1;
    	int i;
    	Bouton Bi;
    	M1=CreationMenuVide(Noir,Gris) ;
    	for (i=1;i<=n;i++)
    	{
    		Bi=FabriquerBouton("" , CreeCoord(3 , 3*2*i)  , CreeCoord(35 , 3) )  ;
    		AjouterBouton ( M1 , Bi ) ;
    	}
    	return M1;
    }
     
     
    void main(void)
    {
    menu M1;
    int num1,i;
    bool fin1=false;
    M1=InitialisationMenuBis(card(K));
    //boucle d'attente du choix menu
    do
    {
    	CouleurTexteConsole(Noir,Blanc);
    	EffaceConsole();
    	AfficherMenu (M1) ;
     
    	num1 = AttendChoixMenu(M1) ;
     
    	CouleurTexteConsole(Noir,Blanc);
    	EffaceConsole();
     
    	switch (num1) 
    	{
    		for (i=1;i<=card(K);i++)
    		{
    			element(K,i,p);
    			case i :
    			        ajouter_en_tete(J,p);
    				cout<<"Clic"<<endl;   
    				AttendClicConsole(); 
    				break;
    		}
    		case (card(K)+1) :
    		fin1 = true ;
    		break ;
     
    	}
     
    }while ( !fin1 ) ;
    }
    Mais bon cela ne marche pas. Quand je compile cela me dit:"l'expression associé à case n'est pas un constante" ce qui est vrai bien sur. Cependant je ne vois pas comment faire autrement et donc pas comment resoudre mon probleme.Est-ce que quelqu'un pourrai m'aider? Merci

    Navigator2008

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je viens de m'apercevoir qu'il y a une erreur dans l'implantation du menu mais cela n'a pas d'impact sur ma question.

    Navigator2008

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Pour information, ceci ne sera jamais exécuté parce que n'étant pas DANS un case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		for (i=1;i<=card(K);i++)
    		{
    			element(K,i,p);
    			case i :
    			        ajouter_en_tete(J,p);
    				cout<<"Clic"<<endl;   
    				AttendClicConsole(); 
    				break;
    		}
    Quand je compile cela me dit:"l'expression associé à case n'est pas un constante" ce qui est vrai bien sur. Cependant je ne vois pas comment faire autrement
    tente le codage via des if

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta reponse mais je ne vois pas comment faire étant donné que je ne connais pas à l'avance le nombre de Bouton ni ce qu'il y a dedans.

    navigator2008

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    ceci n'a aucun sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    	switch (num1) 
    	{
    		for (i=1;i<=card(K);i++)
    		{
    			element(K,i,p);
    			case i :
    			        ajouter_en_tete(J,p);
    				cout<<"Clic"<<endl;   
    				AttendClicConsole(); 
    				break;
    		}
    		case (card(K)+1) :
    		fin1 = true ;
    		break ;
     
    	}
    Soit tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	switch (num1) 
    	{
                     case 0 :
                         ...
                        break ;
     
                     case 1 :
                       ......
                       break ;
                 }
    Soit tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ( num1 == (card(K)+1) ) 
      {
          fin1 = true ;
     }
    else
      {
     .....
      }

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci, mais excusez moi j'ai peut etre un peu de mal, je sais pas, mais je ne vois pas comment je peux faire étant donné que je peux trés bien avoir 2 boutons ou 15!!! Il faut ensuite que je puisse cliquer dessus pour effectuer ce qui est indiqué, en l'occurence ici ajouter le mot sur le bouton dans une liste.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par navigator2008 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    				cout<<"Clic"<<endl;
    Pas du C. Je déplace ?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Pourquoi "Pas du C"? C'est du C pourtant!!

    navigator2008

  9. #9
    Membre régulier Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par navigator2008 Voir le message
    Pourquoi "Pas du C"? C'est du C pourtant!!

    navigator2008
    c'est du c++ , en c on utilise printf()

Discussions similaires

  1. comment creer en c# une application demon pour moos 2007
    Par arioule dans le forum SharePoint
    Réponses: 1
    Dernier message: 07/09/2007, 09h45
  2. Réponses: 1
    Dernier message: 15/05/2006, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo