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++/CLI Discussion :

quelques petites questions sur les windows form


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut quelques petites questions sur les windows form
    bonjour,

    je développema première interface graphique windows form sous vc++ et je rencontre beaucoup de difficlutés.

    pourriez vous m aider en répondant a quelques une de mes questions?

    g simplement creer un bouton et je voudrais savoir comment faire pour que le fait d appuyer sur ce bouton incrémente une variable x et affiche celle ci.
    ou dois-je déclarer cette variable et comment fais-je pour l afficher?

    comment puis-je afficher sur l interface une variable définie dans le main?


    comment puisje faire un tableau avec 8 lignes et 8 colonnes en associant a chacune des 64 cases une action différente si je clik dessus?

    enfin, est-il possible en clikant sur un bouton d'envoyer des données vers le main a la manière d un scanf en c?

    merci beaucoup a ceux qui auront la gentillesse de répondre a mes questions.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tout ca ?
    Citation Envoyé par natasha84
    bonjour,

    je développema première interface graphique windows form sous vc++ et je rencontre beaucoup de difficlutés.

    pourriez vous m aider en répondant a quelques une de mes questions?

    g simplement creer un bouton et je voudrais savoir comment faire pour que le fait d appuyer sur ce bouton incrémente une variable x et affiche celle ci.
    Deux choses :
    il te faut implémenter l'évenement du click. je te conseille de laisser l'IDE s'en charger tout seul, tu doubles-cliques sur le bouton, et tu travailles dans la fonction générée
    ensuite, tu définis une variable membre de ta classe, en private par exemple, et à chaque click, tu l'incrémentes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private:
       int m_cpt;
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    {
       m_cpt++;
    }

    Citation Envoyé par natasha84
    ou dois-je déclarer cette variable et comment fais-je pour l afficher?
    en variable membre de la classe, comme ci-dessus.
    Il y a différentes facons de l'afficher.
    Dans une MessageBox par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox::Show(Convert::ToString(m_cpt));
    ou dans un controle textbox pourquoi pas. Tu fais glisser un textbox sur la form, et tu renseignes sa propriété text
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textbox1->text = Convert::ToString(m_cpt);
    Citation Envoyé par natasha84
    comment puis-je afficher sur l interface une variable définie dans le main?

    Comme ci-dessus par exemple
    Citation Envoyé par natasha84
    comment puisje faire un tableau avec 8 lignes et 8 colonnes en associant a chacune des 64 cases une action différente si je clik dessus?
    je te conseille d'utiliser une grille, ou pourquoi pas le controle listview en mode détails et gridline à true (ca sent le projet de jeux de dames ... )
    Citation Envoyé par natasha84
    enfin, est-il possible en clikant sur un bouton d'envoyer des données vers le main a la manière d un scanf en c?

    merci beaucoup a ceux qui auront la gentillesse de répondre a mes questions.
    Pour la dernière question, je n'ai pas vraiment compris ...

    N'hésite pas à consulter des tutoriels, par exemple celui-ci http://nico-pyright.developpez.com/t...2005/winforms/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    merci beaucoup de vos réponse ca m aide énormement.


    (ca sent le projet de jeux de dames ... )
    effectivement c'est presque ca!
    je dois faire un Othello/reversi.

    Pour la dernière question, je n'ai pas vraiment compris ...
    en fait ma question est la suivante: si je créer une grille avec 64 cases, est il possible d'envoyer les valeurs de la ligne et la colonne de cette case vers mon main?

    j'ai aussi qulelques questions en plus...je suis chiante j avoue lol.


    je sais comment afficher une variable dans une textbox, mais comment on fait pour l afficher dans un label?
    je n'ai pas réussi en convertissant en string...


    quelle instruction dois-je mettre dans le main si je veux afficher quelque chose dans une textbox directement?

    merci d'avance

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ah oui, c'est vrai, otello

    en fait, il ne faut pas travailler dans le main, mais dans la classe qui te sert de winform

    Le truc par défaut, c'est un fichier Form1.h et une classe Form1 qui hérite de Form.

    Donc, soit tu disposes de variables membres de ta classe, comme un entier par ex, et tu l'affiches dans un label comme montré plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    label1->text = Convert::ToString(monEntier);
    Soit tu disposes d'une classe "otello", mais je crois me rappeler que ce n'était pas concu en objet, avec une instance dans ta classe, et tu procèdesde meme pour afficher un membre de ta classe

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    ok d'accord.

    mais en fait le truc ce ke moi j'ai développé un programme en C avec une fonction affichage a base de "printf" donc dans la console, et je voulais savoir ou je dois mettre ce programme pour pouvoir l'utiliser avec l inteface?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Bon, je viens de tenter avec un listview, c'est pas super beau
    je sais pas si c'est la meilleure solution finalement

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    comme t'as l'air archi débutante, j'ai fait un essai rapide avec des boutons. (comme je connais pas otello, c'est surement pas fidèle )

    Donc, projet en c++/cli sous vs2005.
    un tableau 8x8 qui contient des objets "Case". Cet objet étant composé d'un objet PictureBox pour sa représentation graphique et d'un Objet "Pion", qui contient les coordonnées et la couleur du bouton.
    C'est peut-etre pas la meilleure facon de concevoir, mais c'est juste pour la démo.

    Ca dessine le damier avec les pictureBox, il y a aussi une rapide implémentation du drag&drog.

    Si t'as besoin d'explications, n'hésite pas.
    Fichiers attachés Fichiers attachés

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    oula c ompliqué tout ca...

    j'ai pas compris grand chose.
    Je ne voudrais pas abuser de ta gentillesse mais pourrais tu mettre des commentaires dans form1.h parce que g un peu de mal a suivre ce que tu a fais?

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    qu'est-ce qui est compliqué ? le c++ ? la syntaxe c++/CLI ? l'utilisation des composants winforms ?

    en gros, t'as le constructeur, qui initialise les pions

    ensuite, tu as toute une partie qui est générée par le compilo, à savoir la définition des composants. D'ailleurs, en y regardant, y a plein de pollutions venant d'autres tests antérieurs ...
    genre, tout ce qui a attrait à ColumnHeader, tu peux virer

    ensuite, tu as la méthode d'affichage, qui parcourt le tableau, qui affiche si y a eu un changement, et qui initialise le bouzin. D'ailleurs, dans les initialisations, y a des choses pas très bien concues qui sont fait à chaque changement, alors qu'on pourrait les faires une fois pour toute dans le constructeur (comme la définition des delegate pour les évenements des picturebox)

    et ensuite, les trois dernières fonctions gèrent le drag & drop

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    en fait j'ai pas tres bien compris tout ce qu'il ya a partir de affichage...

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    dans l'affichage :
    la premiere boucle imbriquée enleve les composants, s'ils ont été changés, ceci pour pouvoir les redessiner après
    la deuxieme boucle imbriquée redessine justement les composants qui ont été changés. ils sont repositionnés (left et top) en fonction de leur abscisse et ordonnées. On affiche une image en fonction de la couleur. Puis on déclare des événements (drag and drop) et on les associe à des fonctions de notre classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tabCase[i,j]->picture->DragDrop += gcnew DragEventHandler(this, &Form1::PictureDragDrop);
    tabCase[i,j]->picture->DragEnter += gcnew DragEventHandler(this, &Form1::PictureDragEnter);
    tabCase[i,j]->picture->MouseMove += gcnew MouseEventHandler(this, &Form1::PictureMouseMove);
    La suite étant justement l'implémentation de ces fonctions.
    Dans le mouse_move, on envoie l'évenement de draganddrop lorsque le bouton left est enfoncé

    ensuite dans PictureDragEnter, on donne un effet "Copy" pour un element CPion envoyé dans le drag and drop (ca tombe bien, c'est un pion qu'on a envoyé dans la fonction mouse_move

    enfin, la derniere fonction s'occupe de receptionner l'objet d'origine du drag et l'objet de destination. Il effectue ainsi un mouvement, ou un remplacement s'il y a un pion déjà existant.

    Bien sur, aucun controle de mouvement autorisé n'est géré, c'est à toi de brancher ca en fonction de tes besoins

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    ok d'accord je comprend un peu mieu...

    et comment dois-je faire pour créer un pione en clikant sur une case?
    Ou dois-je mettre cette instruction?

    je suis vraiment désolée de poser toutes ces questions ultra betes mais je suis vraiment novice et j'ai beaucoup de mal...

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as lu cet article ? http://nico-pyright.developpez.com/t...2005/winforms/ et notamment le chapitre 3

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    kikou!

    voila j'ai une dernière question (enfin normalement...lol).

    comment puis je faire pour déclarer et utiliser une variable globale dans une windows form?

    en effet je voudrais déclarer des varaiables une bonne fois pour toutes pour que toutes mes fonctions puissent modifier ces variables mais je n'y arrive pas.

    merci d avance

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    faire des variables globales vient en général d'une mauvaise conception.
    Mais tu peux définir une classe avec des membres statiques, comme ceci par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ref class varGlobale
    {
    public:
        static int entierGlobal;
        static String ^chaineGlobale;
    };
    ce qui fait que tu peux y accéder de n'importe où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textBox1->Text = varGlobale::chaineGlobale;

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    oups!!!

    dsl j'ai encore une petite question...

    comment fait on pour déclarer un tableau de int.

    j'ai essayé de faire comme en C en faisant ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ref class varGlobale
    {
    public:
        static int tableau[20];
     
     
    };
    mais il me met une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot define 'tableau' as a member of managed 'othello::varGlobale': mixed types are not supported
    comment fait on dans ce cas la?

  17. #17
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    personnellement, j'aurai utilisé un tableau CLI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static array<int > ^tab = gcnew array<int>(80);

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    oki d accord merci.

    et un tableau a plusieurs dimensions?

  19. #19
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    mmhh ... je me demande bien quelle pourrait etre l'énorme subtilité de syntaxe qui me permettrait de faire un tableau à plusieurs dimensions

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    c pas gentil de te moquer de moi...

    je suis novice donc excuses moi si je t embete mais je suis vraiment en galère.
    je te remercie beaucoup pour toutes tes réponses quand meme.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quelque petite question sur Windows 8
    Par Dragsteur dans le forum Windows 8
    Réponses: 2
    Dernier message: 28/01/2013, 01h00
  2. Petites question sur les onglets...
    Par jarod_bx dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2005, 18h45
  3. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  4. Réponses: 3
    Dernier message: 08/12/2004, 13h58
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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