Je ne vois pas le creategraphics() !!!

jeannot33333 Messages postés 4 Date d'inscription dimanche 15 janvier 2006 Statut Membre Dernière intervention 17 avril 2007 - 16 avril 2007 à 19:26
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 17 avril 2007 à 17:36
Bonjour je suis vraiment debutant en C# et j'ai un petit travail à realiser pour la fin des vacances!

Je dois faire un puissance 4, comme ça n'a pas vraiment l'air difficile mais il s'avere que ce n'est pas de tout repos! Je dois d'abord creer une classe Jeton , ce que j'ai fait qui doit comporter un attribut Point emplacement et un attribut Color Couleur , je dois faire deux methodes, la premiere est le constructeur, la seconde la methode dessiner(Graphics g) qui devrait dessiner un disque plein, de la couleur du jeton, inscrit dans un carré de coté Puissance4.TAILLE_JETON (que j'ai au prealable aajouté comme attributr de classe à Puissance4) et dont le sommet superieur gauche est situé au point emplacement.

J'ai essayé de nombreuses fois de faire cela mais c'est sans aucun resultat!
Quand je veux declarer un nouveau graphics dans jeton.cs celui-ci n'apparait pas alors que si je le fait dans form1.cs je vois bien g.createGraphics(). Je ne comprends vraiment pas comment je peux faire! Biensur je ne vous demande pas la reponse mais une aide serait la bienvenue! Je met quand même ce que j'ai commencé à faire dites moi ce qui ne va aps!

//form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace p4
{
    public partial class Form1 : Form
    {
        int TAILLE_JETON = 13;
        public Form1()
        {
            InitializeComponent();
        }

    
        private void click_rejouer(object sender, EventArgs e)
        {
            //Définition d'un "Crayon" pour dessiner la forme.
            Pen pen = new Pen(Color.Black, 1);
            //On obtient le Graphics de l'objet où l'on veut dessiner.
            Graphics graphics = this.CreateGraphics();
            //Ensuite, on dessine ce qu'on veut. Une ligne par exemple.
            graphics.DrawLine(pen, 0, 0, 100, 100);
            //Ou même un Ellipse.
            graphics.DrawEllipse(pen, 100, 100, 50, 60);
           
        }

        private void Form1_Click(object sender, System.EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            Pen pen = new Pen(new SolidBrush(Color.Black));
            Rectangle rect = new Rectangle(this.PointToClient(Cursor.Position), new Size(100, 50));
            g.DrawRectangle(pen, rect);
            g.DrawEllipse(pen, rect);
        } 

       
    }
}

7 réponses

jeannot33333 Messages postés 4 Date d'inscription dimanche 15 janvier 2006 Statut Membre Dernière intervention 17 avril 2007
16 avril 2007 à 19:28
//form1.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;



namespace p4
{
class Jeton
{
private PointF emplacement;
private Color couleur;


public void dessiner()
{
Jeton test = new Jeton();
test.couleur = Color.Blue;
test.emplacement = PointF(100, 100);
Pen pen=new Pen(test.couleur,1);

}

private PointF PointF(int p, int p_2)
{
throw new Exception("The method or operation is not implemented.");
}

public void dessiner(Graphics graphics)
{

}
}
}

Désolé pour la mise en page c'est la premiere fois que je poste sur ce forum
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 avril 2007 à 20:23
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
16 avril 2007 à 23:44
Salut,

Ca veut dire quoi que le graphics n'apparait pas !?

Ta forme principale possède une méthode CreateGraphics car elle dérive de la classe Form, mais ta classe Jeton elle dérive de rien ( enfin si implicitement d'Object mais peu importe ) alors comment veux qu'elle possède une méthode pour créer un Graphics ? En fait ta méthode nommée 'Dessiner' attend simplement le graphics de la forme qu'il faut passer en paramètre. C'est le même principe que j'utile avec ma classe Sprite ici :

http://www.csharpfr.com/infomsg_FAIRE-ASSEMBLAGE-IMAGES_821749.aspx
0
jeannot33333 Messages postés 4 Date d'inscription dimanche 15 janvier 2006 Statut Membre Dernière intervention 17 avril 2007
17 avril 2007 à 15:22
Merci beaucoup je suis au moins arrivé à tracer quelque chose si j'ai bien compris je ne dois pas faire de Graphics g = this.CreateGraphics(); dans jeton.cs mais plutot dans form1.cs, par contre je ne sais pas trop comment utiliser la classe point, et je ne vois pas non plus à quoi sert un graphics, est ce que c'est un modele du genre graphics g est un cercle de rayon 10 de couleur noir? et l'on s'en sert ensuite pour dessiner? Je me pose plein de questions qui sont surement stupides à vos yeux mais j'ai vraiment besoin de reponses!
Je remercie dors et deja Bidou et Lutinore qui m'ont repondu tres rapidement et qui m'ont beaucoup aidé!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
17 avril 2007 à 15:38
Bien oui l'objet graphics permet de dessiner il maintient un bitmap ainsi que toutes les fonctions nécessaires pour dessiner, fair un cercle, un rectangle etc.. Il faut que tu installes la documentation si n'est pas déja fait.  Toute la doc est en français dans le SDK 2.0 fr ou installe le SDK de Vista tu auras aussi la doc du framework 3.0 mais tout en anglais.

Tu comprendras l'utilité de la structure ( et non de la classe ) Point quand tu auras étudier les méthodes Draw de la classe Graphics.
0
jeannot33333 Messages postés 4 Date d'inscription dimanche 15 janvier 2006 Statut Membre Dernière intervention 17 avril 2007
17 avril 2007 à 15:51
Merci bien je peux y acceder à partir d'ou? personnellement j'ai

Microsoft Visual Studio 2005
Version 8.0.50727.42  (RTM.050727-4200)
Microsoft .NET Framework
Version 2.0.50727

Édition installée : Professional

Microsoft Visual Basic 2005   77915-009-0000007-41134
Microsoft Visual Basic 2005

Microsoft Visual C# 2005   77915-009-0000007-41134
Microsoft Visual C# 2005

Microsoft Visual C++ 2005   77915-009-0000007-41134
Microsoft Visual C++ 2005

Microsoft Visual J# 2005   77915-009-0000007-41134
Microsoft Visual J# 2005

Microsoft Visual Web Developer 2005   77915-009-0000007-41134
Microsoft Visual Web Developer 2005

Crystal Reports    AAC6G-G0CSA4K-U7000P7
Crystal Reports pour Visual Studio 2005

Voila maintenant je ne sais si pas si la documentation a ete installé.
Je ne vois vraiment aps ce que je dois faire pour l'instant mon fichier Jeton.cs ressemble à ça:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace p4
{
    
    class Jeton
    {
        private Point emplacement;  //Comment construire emplacement, je souhaiterait une abscisse, une ordonnée?
        private Color couleur;
       

        public Jeton()    // constructeur par defaut
        {         
           
            couleur = Color.Blue;
            //emplacement = Point.add //comment le construire?
            Pen pen =new Pen(couleur,1);
           
        }

       public void dessiner(Graphics g)
        {
            //Définition d'un "Crayon" pour dessiner la forme.
            //Pen pen = new Pen(Color.Red, 1);
            //On obtient le Graphics de l'objet où l'on veut dessiner.
            //Ensuite, on dessine ce qu'on veut. Une ligne par exemple.
            g.DrawLine(pen, 0, 0, 150, 175);  //pen n'existe pas dans le contexte actuel, je souhaiterai utiliser celui du constructeur par defaut
            //Ou même un Ellipse.
            g.DrawEllipse(pen, 100, 163, 50, 160);    //meme probleme
        }

      
    }
}
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
17 avril 2007 à 17:36
Ah oui mais là tu as beaucoup beaucoup de lacunes.. Le problème avec ton objet 'pen' c'est qu'il faudrait que tu comprennes le principe de variable locale et de variable membre. En gros ton objet 'pen' devrait être déclaré en private dans la classe.

Je peux pas te dire si tu as installé la doc, tape F1 sur l'object graphics dans le code si ta doc n'est pas installée la page sera chargée depuis le net.
0
Rejoignez-nous