CLASSE MENU DEROULANT SOUS LINUX

morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 - 18 nov. 2003 à 22:16
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009 - 7 nov. 2004 à 20:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17977-classe-menu-deroulant-sous-linux

cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
7 nov. 2004 à 20:07
ok je respecte ton choix ^^
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
7 nov. 2004 à 19:52
oui je sai mais je prefere quand meme mettre des acolades c plus propre pour la lecture je trouve.
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
7 nov. 2004 à 19:13
heu.. ptite precision ; tu savais que tu peux te passer d'accolades si t'as qu'une ligne de code apres un if ?
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
7 janv. 2004 à 12:09
oué j ai vu il n y a plus rien dans les zip je m etait planté en faisant une mise à jour et depuis j ai formaté et paumé les sources :(
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
7 janv. 2004 à 11:31
Je ne comprends pas, il manque C_Ecran.h, carvolee.h dans le zip, de plus y'a des fonctions comme getch qui n'existent pas sous linux (a moins que tu n'utilises curses), un makefile serait aussi le bienvenu.
Bouba
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
18 nov. 2003 à 22:16
bon apparement le fichier C_Menu.cpp est vide donc le voila:

#include "C_Menu.h"
#include "C_Ecran.h"
#include <string>
#include "carvolee.h"
#define INVERSE 7
#define NORMAL 0
using namespace std;

C_Ecran O_Ecran1;

void C_Menu::Remplir(short Nbre,string tab[])
{
nbre=Nbre;
tableau=new string[nbre];
for(int i=0;i<Nbre;i++)
{
tableau[i]=tab[i];
}
remplir=true;
}

void C_Menu::Afficher(void)
{
if(remplir!=true)
{
cout<<"Le tableau n'as pas été rempli"<<endl;
exit(0);
}
char choix;
int x,y,j,index,chaine;
index=0; //index du tableau
chaine=0; //nombre de menus
ligne=0; //ligne à inverser
O_Ecran1.Clrscr();
chaine=nbre-1;
while(choix!=10)
{
y=((24-(chaine*2))/2);
index=0;
for(j=0;j<=chaine;j++)
{
x=40-((tableau[index].length())/2);
//x=40-(strlen(menu[index])/2);
O_Ecran1.Gotoxy(x,y);
if(ligne==index)
{
O_Ecran1.VideoAttribut(INVERSE);
cout<<tableau[index];
//cout<<menu[index];
O_Ecran1.VideoAttribut(NORMAL);
}
else
{
cout<<tableau[index];
//cout<<menu[index];
}
y=y+2;
index++;
}
cout<<endl;
choix=getch();
if(choix=='A')
{
if(ligne==0)
{
ligne=(chaine-1);
}
else
{
ligne--;
}
}
if(choix=='B')
{
if(ligne==chaine)
{
ligne=0;
}
else
{
ligne++;
}
}
}

O_Ecran1.Clrscr(); //on efface l ecran
affiche=true;
delete []tableau;
}

short C_Menu::Rendre_choix(void)
{
int y,x;
if(affiche!=true)
{
cout<<"La phase d'affichage n'as pas été correctement executée"<<endl;
exit(0);
}
y=11;
x=10;
O_Ecran1.Gotoxy(x,y); //on deplace en x;y
return(ligne);
}
Rejoignez-nous