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 :

Problème Class en c# [Débutant]


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut Problème Class en c#
    Bonjour à tous ,

    j'ai un soucis , lorsque je met mes variables dans ma classe métier je n'arrive pas à récupérer les variables et lorsque je fais de l'héritage , la form ne fonctionne plus. J'ai essayer avec des get et set et je ne reçois rien non plus.
    Aussi j'ai un trackbar et je n'arrive pas à mettre le code dans la classe pareil avec une picturebox.

    Si quelqu'un aurait la solution sa serait cool!

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Ne penses-tu pas que le plus judicieux serait de poster le code de la classe en question .......

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    En effet je pense que sa sera mieux
    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
    namespace Essaimetier
    {
        public override class metiercamera 
     
     
     
        {
     
             private string _user;
     
    public string User
    {
      get { return _user; }
      set { _user = value; }
    }
             private string _pwd;
     
    public string Pwd
    {
      get { return _pwd; }
      set { _pwd = value; }
    }
             private string _IP;
     
    public string IP
    {
      get { return _IP; }
      set { _IP = value; }
    }
     
     
     
            public metiercamera(string User,string Pwd,string IP)//Le constructeur
            {
                this.User = "admin";
                this.Pwd = "CAMIP5N1";
                this.IP = "192.168.1.5:80";
                //_user = "admin";
                //_pwd = "CAMIP5N1";
                //_IP = "192.168.1.5:80";
     
     
            }
     
            public metiercamera()//Le constructeur
            {
                this.User = "admin";
                this.Pwd = "CAMIP5N1";
                this.IP = "192.168.1.5:80";
                //_user = "admin";
                //_pwd = "CAMIP5N1";
                //_IP = "192.168.1.5:80";
     
     
            }

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Déjà ta classe est incorrecte, espace de noms ouvrant et non fermé ainsi que la classe metiercamera .......breffff.....

    Comme 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
     
     public override class metiercamera 
        {
     
             private string m_user;
     
    public string User
    {
      get { return m_user; }
      set { m_user = value; }
    }
             private string m_pwd;
     
    public string Pwd
    {
      get { return m_pwd; }
      set { m_pwd = value; }
    }
             private string m_IP;
     
    public string IP
    {
      get { return m_IP; }
      set { m_IP = value; }
    }
     
     
     
            public metiercamera(string mUser,string mPwd,string mIP)//Le constructeur
            {
                m_user = mUser;
                m_pwd = mPwd;
                m_IP = mIP;
            }
     
            public metiercamera()//Le constructeur
            {
                m_user = "admin";
                m_pwd = "CAMIP5N1";
                m_IP = "192.168.1.5:80";
            }
      }
    Ou comme cela :

    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
     
     public override class metiercamera 
        {
     
    public string User { get; set; }
     
    public string Pwd { get; set; }
     
    public string IP¨{ get; set; }
     
            public metiercamera(string mUser,string mPwd,string mIP)//Le constructeur
            {
                _User = mUser;
                _Pwd = mPwd;
                _IP = mIP;
            }
     
            public metiercamera()//Le constructeur
            {
                _User = "admin";
                _Pwd = "CAMIP5N1";
                _IP = "192.168.1.5:80";
            }
      }
    Mais pas un mélange des 2 !!

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Bonjour ,

    merci pour votre aide.
    Auriez-vous une solution pour que je puisse utiliser ces variables dans un autre fichier cs ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void Form1_Load_1(object sender, EventArgs e)
            {
                metiercamera camera2 = new metiercamera();
                string ip = camera2.ip();
                string user = camera2.user();
                string pwd = camera2.pwd();
                _mjpeg = new MjpegDecoder();
                //mjpeg.Error += mjpeg_Error;
                _mjpeg.FrameReady += affichervideo;
                _mjpeg.ParseStream(new Uri("http://" +ip+ "/videostream.cgi?user=" +user+ "&pwd="+pwd+""));
     
            }
    Etant donner que je n'y arrivais pas avec les get et set j'avais fait comme ça avec dans la class un return sauf que la je ne trouve pas les variables .
    Merci d'avance et bonne journée.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    La classe MetierCamera est-elle définie dans un autre projet que la Form (dans une dll) ? Si c'est le cas, il faut ajouter la référence de cette dll dans les références du projet de la Form (Clic droit sur References dans l'explorateur de solution).

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Bonjour ,

    la classe metiercamera est dans le même projet justement.

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Vérifie que l'autre fichier où tu souhaite l'utiliser est dans le même namespace.
    Si ce n'est pas le cas tu as le choix entre mettre le même namespace dans cet autre fichier ou ajouter un using vers Essaimetier dans ce fichier.

    Je choisirais la seconde option.

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Dans mon programme principal j'ai mis using Essaimetier; malgré qu'ils ont le même namespace et je ne trouve toujours pas les variables.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void Form1_Load_1(object sender, EventArgs e)
            {
                metiercamera camera1 = new metiercamera();
                _mjpeg = new MjpegDecoder();
                //mjpeg.Error += mjpeg_Error;
                _mjpeg.FrameReady += affichervideo;
                _mjpeg.ParseStream(new Uri("http://" +IP+ "/videostream.cgi?user=" +User+ "&pwd="+Pwd+""));
     
            }
    IP,User et Pwd ne sont pas reconnue.

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Difficile de suivre car ton code change à chaque poste. Ici tu utilises IP, User et Pwd qui ne sont définis nulle part. Le poste d'avant tu utilisais metiercamera.ip(), donc une méthode de la classe metiercamera.
    Bref, écris un deux lignes de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    metiercamera cam = new metiercamera();
    cam.IP = "";
    IP devrait être souligné pour indiquer une erreur. Lorsque tu places ta souris dessus, il y aura une infobulle qui devrait t'indiquer la source de l'erreur.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Voici mon code de ma classe je pense que sa sera plus facile comme ça :

    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Net;
    using MjpegProcessor;
    using System.Net.NetworkInformation;
     
     
    namespace Essaimetier
    {
        public override class metiercamera 
        {
     
             private string m_user;
     
    public string User
    {
      get { return m_user; }
      set { m_user = value; }
    }
             private string m_pwd;
     
    public string Pwd
    {
      get { return m_pwd; }
      set { m_pwd = value; }
    }
             private string m_IP;
     
    public string IP
    {
      get { return m_IP; }
      set { m_IP = value; }
    }
     
     
     
            public metiercamera(string mUser,string mPwd,string mIP)//Le constructeur
            {
                m_user = mUser;
                m_pwd = mPwd;
                m_IP = mIP;
            }
     
            public metiercamera()//Le constructeur
            {
                m_user = "admin";
                m_pwd = "CAMIP5N1";
                m_IP = "192.168.1.5:80";
            }
     
     
     
     
     
     
            public void deplacerHaut()
            {
     
                WebRequest request = WebRequest.Create("http://" + IP + "/decoder_control.cgi?command=0&onestep=1&user=" + User + "&pwd=" + Pwd); //Créez une instance d' WebRequest en appelant Create avec l'URI de la ressource.
     
                WebResponse response = request.GetResponse(); //Envoyer demande à la caméra           
     
                Stream dataStream = response.GetResponseStream(); //Obtenir la réponse de la caméra
     
                StreamReader reader = new StreamReader(dataStream); //Lire le contenue de la réponse
     
                string responseFromServer = reader.ReadToEnd(); //Afficher le contenue
     
                Console.WriteLine(responseFromServer); //Nettoyage
     
                reader.Close();
                response.Close();
            }
     
            public void deplacerBas()
            {
                WebRequest request = WebRequest.Create("http://" + IP + "/decoder_control.cgi?command=2&onestep=1&user=" + User + "&pwd=" + Pwd);
     
                WebResponse response = request.GetResponse();
     
                Stream dataStream = response.GetResponseStream();
     
                StreamReader reader = new StreamReader(dataStream);
     
                string responseFromServer = reader.ReadToEnd();
     
                Console.WriteLine(responseFromServer);
     
                reader.Close();
                response.Close();
     
            }
     
                public void deplacerGauche()
     
             {
     
                WebRequest request = WebRequest.Create("http://" + IP + "/decoder_control.cgi?command=6&onestep=1&user=" + User + "&pwd=" + Pwd);
     
                WebResponse response = request.GetResponse();
     
                Stream dataStream = response.GetResponseStream();
     
                StreamReader reader = new StreamReader(dataStream);
     
                string responseFromServer = reader.ReadToEnd();
     
                Console.WriteLine(responseFromServer);
     
                reader.Close();
                response.Close();
     
             }
     
                public void deplacerDroite()
                {
                    WebRequest request = WebRequest.Create("http://" + IP + "/decoder_control.cgi?command=4&onestep=1&user=" + User + "&pwd=" + Pwd);
     
                    WebResponse response = request.GetResponse();
     
                    Stream dataStream = response.GetResponseStream();
     
                    StreamReader reader = new StreamReader(dataStream);
     
                    string responseFromServer = reader.ReadToEnd();
     
                    Console.WriteLine(responseFromServer);
     
                    reader.Close();
                    response.Close();
                }
     
     
     
                public void connection(PictureBox etat)
                {
     
     
                    Ping ping = new Ping();
     
                    PingReply pingReply4 = ping.Send("192.168.1.5", 1000);
     
                    System.Console.WriteLine("IP:{0} Etat:{1}", pingReply4.Address, pingReply4.Status);
                    if (pingReply4.Status == IPStatus.Success)
                    {
                        etat.BackColor = System.Drawing.Color.Green;
     
                    }
                    else
                    {
                        etat.BackColor = System.Drawing.Color.Red;
     
                    }
                }
     
            }
        }
    Et le code de la form :
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Net;
    using MjpegProcessor;
    using System.Net.NetworkInformation;
    using Essaimetier;
     
     
    namespace Essaimetier
    {
        public partial class Form1 : Form
        {
            MjpegDecoder _mjpeg;
     
     
     
     
     
     
     
     
            public Form1()
            {
                InitializeComponent();
            }
     
            public void affichervideo(object sender, FrameReadyEventArgs e)
            {
                image.Image = e.Bitmap;
     
     
            }
     
     
            public void Form1_Load_1(object sender, EventArgs e)
            {
                metiercamera camera2 = new metiercamera();
                _mjpeg = new MjpegDecoder();
                //mjpeg.Error += mjpeg_Error;
                _mjpeg.FrameReady += affichervideo;
                _mjpeg.ParseStream(new Uri("http://" +IP+ "/videostream.cgi?user=" +User+ "&pwd="+Pwd+""));
     
            }
     
     
     
     
     
            public void DéplacerHaut_Click(object sender, EventArgs e)
            {
                metiercamera camera1 = new metiercamera();
                camera1.deplacerHaut();
            }
     
            private void DéplacerBas_Click(object sender, EventArgs e)
            {
                metiercamera camera1 = new metiercamera();
                camera1.deplacerBas();
            }
     
            private void DéplacerGauche_Click(object sender, EventArgs e)
            {
                metiercamera camera1 = new metiercamera();
                camera1.deplacerGauche();
            }
     
            private void DéplacerDroite_Click(object sender, EventArgs e)
            {
                metiercamera camera1 = new metiercamera();
                camera1.deplacerDroite();
            }
     
            private void image_Click(object sender, EventArgs e)
            {
     
            }
     
            public void contraste_Click(object sender, EventArgs e)
            {
                metiercamera camera2 = new metiercamera();
     
                WebRequest request = WebRequest.Create("http://"+IP+"/camera_control.cgi?param=2&value=" + contraste.Value + "&user="+User+"&pwd="+Pwd+"");
     
     
                WebResponse response = request.GetResponse();
     
                Stream dataStream = response.GetResponseStream();
     
                StreamReader reader = new StreamReader(dataStream);
     
                string responseFromServer = reader.ReadToEnd();
     
                Console.WriteLine(responseFromServer);
     
                reader.Close();
                response.Close();
            }
     
            private void luminosite_Scroll(object sender, EventArgs e)
            {
                metiercamera camera2 = new metiercamera();
     
                WebRequest request = WebRequest.Create("http://"+IP+"/camera_control.cgi?param=1&value=" + luminosite.Value + "&user="+User+"&pwd="+Pwd+"");
     
                WebResponse response = request.GetResponse();
     
                Stream dataStream = response.GetResponseStream();
     
                StreamReader reader = new StreamReader(dataStream);
     
                string responseFromServer = reader.ReadToEnd();
     
                Console.WriteLine(responseFromServer);
     
                reader.Close();
                response.Close();
            }
     
            public void etat_Click(object sender, EventArgs e)
            {
     
            }
     
     
     
     
     
     
     
     
     
     
        }
    }
    Et donc dans le code de la form , j'ai Le nom 'User' n'existe pas dans le contexte actuel.

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Comme je l'indiquais User n'est pas défini : Tu utilises une variable et non la propriété de l'objet camera2 que tu instancies et que tu n'utilises pas. Tente avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _mjpeg.ParseStream(new Uri("http://" +camera2.IP+ "/videostream.cgi?user=" +camera2.User+ "&pwd="+camera2.Pwd));

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Bonjour ,

    excusez-moi pour l’absence je reviens de vacance.
    Merci beaucoup pour votre aide , s'était tout à fait ça!!!

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    excusez-moi de vous redéranger encore mais dans ma classe , lorsque je prend la valeur d'un trackbar qui se trouve dans Form1 , elle n'est pas reconnue ( contraste.Value).
    Comment je pourrais faire pour qu'il "reconnaisse" la pictureBox ainsi que le trackbar?



    merci d'avance.

  15. #15
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Normalement, la classe métier n'a pas à connaitre les controls d'une form. Plutôt que d'utiliser la valeur d'une trackbar dans la classe, il est préférable que la classe implémente une méthode qui prendra en paramètre la valeur de la trackbar. Idem pour le picturebox.
    Il faudrait savoir ce que tu veux faire exactement pour répondre plus précisément.

  16. #16
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Les valeurs que renvoie mes 2 trackbars , je m'en sert pour modifier la luminosité et une pour le contraste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebRequest request = WebRequest.Create("http://"+camera1.IP+"/camera_control.cgi?param=2&value=" + contraste.Value + "&user="+camera1.User+"&pwd="+camera1.Pwd+"");
    Avant que je m'attaque aux classes , j'avais fait comme cela sauf que dans ma classe, le trackbar nommé contraste n'est pas reconnue.

    Pareil pour ma pictureBox qui signal l'état de la caméra. J'effectue un Ping vers l'IP de ma caméra et si le ping est bon , le fond de la pictureBox est vert et s'il n'est pas bon , c'est rouge :
    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
    public void connection(PictureBox etat)
                {
     
     
                    Ping ping = new Ping();
     
                    PingReply pingReply4 = ping.Send("192.168.1.5", 1000);
     
                    System.Console.WriteLine("IP:{0} Etat:{1}", pingReply4.Address, pingReply4.Status);
                    if (pingReply4.Status == IPStatus.Success)
                    {
                        etat.BackColor = System.Drawing.Color.Green;
     
                    }
                    else
                    {
                        etat.BackColor = System.Drawing.Color.Red;
     
                    }
                }

  17. #17
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Pour faire ce que tu veux, tu peux passer en paramètre la valeur du trackbar à la méthode qui en a besoin plutôt que d'utiliser directement le trackbar. Je ne comprends pas vraiment où est le problème.
    Concernant ta méthode Connection, on ne sait pas qui l'implémente ni quand et par qui elle est appelée et quel est le problème donc difficile de répondre...

  18. #18
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    Ce que je voudrais , c'est mettre toute mes fonctions dans la classe et donc mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebRequest request = WebRequest.Create("http://"+camera1.IP+"/camera_control.cgi?param=2&value=" + contraste.Value + "&user="+camera1.User+"&pwd="+camera1.Pwd+"");

  19. #19
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Citation Envoyé par antoine51 Voir le message
    Ce que je voudrais , c'est mettre toute mes fonctions dans la classe et donc mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebRequest request = WebRequest.Create("http://"+camera1.IP+"/camera_control.cgi?param=2&value=" + contraste.Value + "&user="+camera1.User+"&pwd="+camera1.Pwd+"");
    Oui mais non. Ce n'est pas une bonne idée. Ta classe serait un fourre-tout. Dans ton modèle, tout le monde connait tout le monde : La classe Camera connait la couche de communication HTTP ainsi que l'IHM où sont définis les Controls. Ca finira en plat de spaghettis cette histoire. Donc techniquement tu peux le faire mais il ne faut pas. En effet, imagine que tu veuilles réutiliser cette classe un jour sans la trackbar mais avec un champ de saisie pour le contraste : Tu seras obligé de la réécrire en partie... L'idée est d'en faire une boite noire indépendante avec des entrées-sorties (les méthodes et propriétés) que ton IHM utilisera.
    Donc dans un premier temps, ta méthode qui fait le WebRequest.Create doit attendre en paramètre la valeur du contraste et ne pas aller la chercher dans l'IHM.

    Autre chose en passant : Si tu te rends compte que tu écrits plusieurs fois les mêmes lignes de code (genre WebRequest.Create) c'est que tu peux simplifier et atomiser ton code.

  20. #20
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Par défaut
    D'accord merci beaucoup pour l'aide !!

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

Discussions similaires

  1. problème classe managée.
    Par adicor dans le forum MFC
    Réponses: 5
    Dernier message: 08/05/2006, 21h19
  2. problème class vector
    Par Pe04 dans le forum SL & STL
    Réponses: 2
    Dernier message: 27/02/2006, 10h45
  3. Problème class
    Par Anduriel dans le forum Langage
    Réponses: 19
    Dernier message: 28/01/2006, 19h34
  4. problème classes templates...
    Par youp_db dans le forum C++
    Réponses: 3
    Dernier message: 02/11/2005, 13h04
  5. problème classe et fonction
    Par zmatz dans le forum C++
    Réponses: 14
    Dernier message: 19/10/2005, 21h46

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