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

Bibliothèques Discussion :

[ncurses] recupération de la valeur d'un champ


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut [ncurses] recupération de la valeur d'un champ
    Bonjour à tous,

    J'ai fait une interface en ncurses des plus basique ...
    Tout fonctionne normalement à l'exception de la récupération des valeurs se trouvant dans les champs ...
    Pas moyen d'y avoir accès.
    Je me doute que je fais quelque chose de travers, ... mais quelle est la fonction qui me permettrait de récupérer ces valeurs ???

    Merci d'avance pour vos réponses qui me seront d'un grand secour ...

    etS

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par horkets
    J'ai fait une interface en ncurses des plus basique ...
    Tout fonctionne normalement à l'exception de la récupération des valeurs se trouvant dans les champs ...
    Pas moyen d'y avoir accès.
    Je me doute que je fais quelque chose de travers, ... mais quelle est la fonction qui me permettrait de récupérer ces valeurs ???
    Tu as oublié de poster le code avec lequel tu as un problème...

  3. #3
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut
    le voici !

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include <form.h>
     
    /*int set_field_userptr(FIELD *field,char *userptr); 
    /*char *field_userptr(FIELD *field);      
     
    int main(){
     
    	FIELD *field[4];
    	FORM  *my_form;
    	int ch, i;
     
    	/* Initialize curses */
    	initscr();
    	start_color();
    	cbreak();
    	noecho();
    	keypad(stdscr, TRUE);
     
    	/* Initialisation des couleurs */
    	init_pair(1, COLOR_BLACK, COLOR_WHITE);
    	init_pair(2, COLOR_BLACK, COLOR_WHITE);
     
    	/* Initialisation des champŝ */
    	field[0] = new_field(1, 5, 8, 20, 0, 0);
    	field[1] = new_field(1, 5, 10, 20, 0, 0);
    	field[2] = new_field(1,5,12,20,0,0);
    	field[3] = NULL;
     
    	/* Assignation des specificités des champs */
    	set_field_fore(field[0], COLOR_PAIR(1));/* definition de la couleur de fons de champ */
    	set_field_back(field[0], COLOR_PAIR(2));/* definition de la couleur du caractere */
    	field_opts_off(field[0], O_AUTOSKIP);/*Ne pas passer au champ suivant si le nbr de char permis est dépassé dans le champ precedent*/
    	set_field_userptr(field[0], dist);
     
    	set_field_fore(field[1], COLOR_PAIR(1));
    	set_field_back(field[1], COLOR_PAIR(2));
    	field_opts_off(field[1], O_AUTOSKIP);
     
    	set_field_fore(field[2], COLOR_PAIR(1));
    	set_field_back(field[2], COLOR_PAIR(2));
    	field_opts_off(field[2], O_AUTOSKIP);
     
    	/* Create the form and post it */
    	my_form = new_form(field);
    	post_form(my_form);
    	refresh();
     
    	mvprintw(4,5, "Evaluation des notes\n");
     
    	//set_current_field(my_form, field[0]); /* Placer le curseur dans un champ bien precis*/
    	mvprintw(8, 5, "Distance: ");
    	//set_current_field(my_form, field[1]);
    	mvprintw(10, 5, "Style: ");
    	//set_current_field(my_form, field[2]);
    	mvprintw(12, 5, "commentaire: ");
     
    	mvprintw(LINES -39, 5, "Utilisez les fleches HAUT/BAS pour vous diriger dans les champs");
    	mvprintw(LINES -38, 5, "Utilisez les fleches GAUCHE pour vider un champ");
    	mvprintw(LINES -37, 5, "Utilisez la touche F8 pour valider l'encodage");
    	mvprintw(LINES -36, 5, "Utilisez la touche F1 pour sortir");
     
    	refresh();
     
    	/* Loop through to get user requests */
    	while((ch = getch()) != KEY_F(1))
    	{	switch(ch)
    		{	case KEY_DOWN:
    				/* Go to next field */
    				form_driver(my_form, REQ_NEXT_FIELD);
    				/* Go to the end of the present buffer */
    				/* Leaves nicely at the last character */
    				form_driver(my_form, REQ_END_LINE);
    				break;
    			case KEY_UP:
    				/* Go to previous field */
    				form_driver(my_form, REQ_PREV_FIELD);
    				form_driver(my_form, REQ_END_LINE);
    				break;
    			case KEY_LEFT:
    				/*erase field*/
    				form_driver(my_form, REQ_CLR_FIELD);
    				break;
    Mon problème se trouve ici plus bas,
    En utilisant la touche F8, j'aimerais afficher les valeurs se trouvant dans les différents champ ...
    Je crois savoir que je dois utiliser un pointeur se trouvant dans la structure FIELD (..?) mais je n'en suis pas sur et si c'est bien le cas, comment y parvenir ?
    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
     
    			case KEY_F(8):
    				mvprintw(20,5, "distance : %s", field_userptr(field[0]));
     
    			default:
    				/* If this is a normal character, it gets */
    				/* Printed				  */
    				form_driver(my_form, ch);
    				break;
    		}
    	}
     
    	/* Un post form and free the memory */
    	unpost_form(my_form);
    	free_form(my_form);
    	free_field(field[0]);
    	free_field(field[1]);
    	free_field(field[2]);
     
    	endwin();
    	return 0;
    }
    merci

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par horkets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    			case KEY_F(8):
    				mvprintw(20,5, "distance : %s", field_userptr(field[0]));
     
    			default:
    				/* If this is a normal character, it gets */
    				/* Printed				  */
    				form_driver(my_form, ch);
    				break;
    		}
    	}
    Il n'y a pas de break pour F8. C'est volontaire ?

  5. #5
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut
    Ce n'est pas voulu, j'ai du effacer le break; en postant le code sur le forum.

  6. #6
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut
    Bon,

    l'alternative à ce probleme est de créer une fenetre, de la placer au bon endroit et de rendre cette fenetre similaire (en apparence) à un champ ...
    Je sais pas si c'est la meilleure façon de faire, mais cela a pu me dépanner.

    Merci à tout ceux qui ont bien voulu m'accorder un peu de temps

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/01/2011, 20h19
  2. Réponses: 4
    Dernier message: 31/07/2007, 12h59
  3. Réponses: 8
    Dernier message: 04/05/2007, 17h10
  4. Recupérer la valeur d'un champ de texte
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 13/04/2006, 13h00
  5. Réponses: 11
    Dernier message: 19/12/2005, 11h02

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