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

VB.NET Discussion :

Creation d'une collection de composants


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut Creation d'une collection de composants
    Bonjour a tous

    Mon probleme est le suivant:
    Je voudrais creer plusieurs composant basé sur un Model de composant puis en faire une collection , au sein de cette collection les composants prennent diff Nom , diff logo , diff comportement etc . Mon but est de mettre cette collection de composant sur un formuliare et par Glisser deposer construire mon systeme Final.. Un exemple assez proche de mon application est Une voiture... Les differentes pieces d'une voiture ( Roue , Feu , Volant , Moteur ,etc ) representent mes composant. Une fois placés sur formulaire je peux les utiliser ( glisser / deposer ) pour constriure ma voiture.
    J'ai reussi a faire le composant de base avec toutes ses proprietées. Il est visible dans la boite a outil . quand je le teste seul il reagit a ce que j'attend. Mais quand je le depose sur le formuliare , je n'ai pas acces a ses proprietés ni ses methodes.
    Pourriez vous m'aider ,, j'espere que je me suis bien exprimé

    Merci

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    Concernant :
    Citation Envoyé par AirbusA330 Voir le message
    quand je le teste seul il reagit a ce que j'attend. Mais quand je le depose sur le formuliare , je n'ai pas acces a ses proprietés ni ses methodes.
    Question idiote, as-tu mit ces méthodes / propriétées PUBLIC ?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Bonjour,

    Concernant :


    Question idiote, as-tu mit ces méthodes / propriétées PUBLIC ?
    Oui j'ai bien declaré tout en Public...

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Désoler, dans ce cas je ne sais pas t'aider.
    Quand je crée un composant, toutes ces propriétés / méthodes PUBLIC sont disponible à son utilisation... (heureusement )
    Essaye de préciser comment tu fais pour les déclarer (les propriétés / méthodes) et comment tu fais pour utiliser tes composants, on ne sais jamais...

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    précise un peu plus
    donne par exemple le code d'une propriété que tu ne peux pas accéder (l'intellisense non plus y arrive pas ?)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    précise un peu plus
    donne par exemple le code d'une propriété que tu ne peux pas accéder (l'intellisense non plus y arrive pas ?)
    Bonjour sperot51 ,, merci pour ton interret voici de quoi il s'agit
    j'ai demaré un nouveau projet de Biliothèque de Classes et j'ai mis 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
    43
    44
    45
    46
    47
    48
     Public Class Failures
     
        Public AtaNumber As Integer
        Public SystemNumber As Integer
        Public SystemName As String
        Public SubsystemName As String
        Public SubsystemNumber As String
        Public SystemLogo As ValueType
        Public EcamFailure As String
        Public StatusType As Integer
        Public StatusSingle As Object
        Public StatusDouble As Object
        Public FlagFailure As Integer
        Property AtaNum() As Integer
            Get
                Return AtaNumber
            End Get
            Set(ByVal value As Integer)
                AtaNumber = value
            End Set
        End Property
        Property SystemIcon() As ValueType
            Get
                Return SystemLogo
            End Get
            Set(ByVal value As ValueType)
                SystemLogo = value
            End Set
        End Property
        Property StatusTyp() As Integer
            Get
                Return StatusType
            End Get
            Set(ByVal value As Integer)
                StatusType = value
            End Set
        End Property
        Property EcamFailName() As String
            Get
                Return SystemName
            End Get
            Set(ByVal value As String)
                SystemName = value
            End Set
        End Property
     
     
    End Class
    Mon projet se Nome Ecam et comporte cette classe Failures, un control qui s'appele SytemCTL qui est le dit composant et rajouté plus tard un module( j'expliquerais plus loin le pourquoi de ce module )
    J'ai générer la solution Ok puis j'ai creer un nouveau projet Essais CTL dans le quel j'ai rajouté le projet Ecam ( le composant ) ,, le composant Apparait dans la boite a outil sous l'Onglet composant sous le nom SystemCtl. je le depose sur une Form Ok ca marche.. et c'est la le problem , je n'accede a rien de ce composant.

    Par contre si dans mon nouv projet je fais ref a Ecam qui le nom du projet du composant je peux acceder a :
    Ecam.Failures
    ou
    Ecam.SystemCtl

    Sachant Que :
    Failures est ma Classe pour ce composant
    SystemCTL est le nom du composant
    Mais dans les deux cas j'ai :
    Ecam.Failures.Equals ou Ecam.Failures.ReferenceEquals

    Explication pour le Module.
    Comme je voudrais faire une collection de cet objet , n'ayant pas eu acces a ses methodes/Proprietés j'ai creer un Module au sein meme du projet composant qui ajoute un composant a chaque fois que je depose un sur le formulaire.... ca marche a l'interieur du projet composant mais pas aiileurs. La collection est bien créer avec le nombre de composant.

    Soyez patient avec ma methode de programmation je suis debutant... j'espere que j'ai donné le plus d'infos.... Mille fois merci

    voici le code
    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
     Module EcamModule
     
        Public OneEcam As New Ecam.Failures
        Public MyColFail As New Microsoft.VisualBasic.Collection()
     
        Public Sub makeAWidget()
            With OneEcam
                .AtaNum = 21
                .SystemName = "HYDROLIC"
                .SubsystemName = "GREEN HYD ENGINE PUMP"
                .EcamFailName = "GREEN HYDR SYSTEM FAIL "
     
                .StatusTyp = 1
     
                MyColFail.Add(OneEcam)
            End With
        End Sub
     
     
     
    End Module

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu parles d'un controle que tu as fait, mais dont les propriétés ne s'affichent pas en mode design quand tu en poses

    le code que tu donnes n'a pas l'air d'etre le controle en question, hors je voulais le code du controle pour pouvroi te dire pourquoi les propriétés ne s'affichent pas (bienque j'en ai une vague idée maintenant)


    sinon d'une manière générale, essayer d'éviter tout ce qui se trouve dans Microsoft.VisualBasic

    pour les collections, il s y a system.collections avec le célèbre system.collections.generic.list(of )



    sinon le code de ta classe failures, c'est bien d'avoir des propriétés qui pointent vers des variables, mais dans ce cas :
    - on mets les variables private (et au passage marquer public devant les propriétés lève l'ambiguité de l'implicisme)
    - on nomme les propriétés et les variables quasi pareil
    - on peut éventuellement grouper
    =>
    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
     
    private _machin as string
    public property machin as string
      get
         return _machin
      end get
      set (byval value as string)
        _machin = value
      end set
    end property 
     
     
    private _bidule as string
    public property bidule as string
      get
         return _bidule 
      end get
      set (byval value as string)
        _bidule = value
      end set
    end property
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par AirbusA330 Voir le message
    Soyez patient avec ma methode de programmation je suis debutant...
    T'inquiète, je ne suis pas vraiment plus expert que toi, ça fait seulement 8 mois que je me suis mis au .net et je traine sur le forum et les tuto pour m'améliorer...

    Sinon suit bien les conseils de sperot51...

    Citation Envoyé par sperot51
    sinon d'une manière générale, essayer d'éviter tout ce qui se trouve dans Microsoft.VisualBasic

    pour les collections, il s y a system.collections avec le célèbre system.collections.generic.list(of )



    sinon le code de ta classe failures, c'est bien d'avoir des propriétés qui pointent vers des variables, mais dans ce cas :
    - on mets les variables private (et au passage marquer public devant les propriétés lève l'ambiguité de l'implicisme)
    - on nomme les propriétés et les variables quasi pareil
    - on peut éventuellement grouper

  9. #9
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    tu parles d'un controle que tu as fait, mais dont les propriétés ne s'affichent pas en mode design quand tu en poses

    le code que tu donnes n'a pas l'air d'etre le controle en question, hors je voulais le code du controle pour pouvroi te dire pourquoi les propriétés ne s'affichent pas (bienque j'en ai une vague idée maintenant)


    sinon d'une manière générale, essayer d'éviter tout ce qui se trouve dans Microsoft.VisualBasic

    pour les collections, il s y a system.collections avec le célèbre system.collections.generic.list(of )



    sinon le code de ta classe failures, c'est bien d'avoir des propriétés qui pointent vers des variables, mais dans ce cas :
    - on mets les variables private (et au passage marquer public devant les propriétés lève l'ambiguité de l'implicisme)
    - on nomme les propriétés et les variables quasi pareil
    - on peut éventuellement grouper
    =>
    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
     
    private _machin as string
    public property machin as string
      get
         return _machin
      end get
      set (byval value as string)
        _machin = value
      end set
    end property 
     
     
    private _bidule as string
    public property bidule as string
      get
         return _bidule 
      end get
      set (byval value as string)
        _bidule = value
      end set
    end property
    Merci sperot51 Pour ta reponse a vraie dire je n'ai pas de code dans mon composant peut etre c'est la l'erreur . Si oui que me conseilles tu de mettre la classe dans le composant ? J'ai encore du code a mettre pour que le composant posé sache reagir aux autres deja posé ;;; pour qu'il determine sont Statut etc Peux tu me dire ou mettre ca ? Le seule code est cette classe Failures plus le Module....

    En faite Mon Idee comme je suis Pilote de Ligne Instructeur ;;; Je veux Faire pour mes Stagiare un Programme qui ,e cree une Collection de presque Toutes les pannes D'un Airbus A330 ( Pour ca j'ai ce qu'il faut ) . Puis en les mettant sur Une forme Montre aux Stagiare le comportement de L'avion selon que la panne est Simple; double ;; appartenant a un meme system etc
    La je pars Voler A+ dans 3 jopurs
    Mecri Pou ton Aide

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    venir poster pour dire "j'ai fait un usercontrol mais je n'ai pas accès aux propriétés" et "je n'ai pas mis de propriétés dans mon usercontrol"

    pas mal ...
    (j'ai traduit au passage, car comme dans tout il y a un vocabulaire à essayer de suivre)

    pour les débutants c'est ici :
    http://plasserre.developpez.com/cours/vb-net/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    venir poster pour dire "j'ai fait un usercontrol mais je n'ai pas accès aux propriétés" et "je n'ai pas mis de propriétés dans mon usercontrol"

    pas mal ...
    (j'ai traduit au passage, car comme dans tout il y a un vocabulaire à essayer de suivre)

    pour les débutants c'est ici :
    http://plasserre.developpez.com/cours/vb-net/
    Bonjour spero51 ,,, je te remercie pour ton message qui m'a un peu plus eclaireeee... J'avoue que qd j'ai commence mon projet dans l'explorateur de solution y avait deja un fichier classe1.vb alors je me suis peut etre c'est la ou il faut declarer la classe du composant... maintenant j'ai arrange tout et ca marche ... Pret pour l'etape suivante. qui s'annonce Hard.. mais suis content de ce 1er resultat encore une fois merci pour ce grand coup de pied au..... Ca reveille

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    l'architecture des fichiers ainsi que leur nom ne fait rien sur le programme c'est le contenu des fichiers qui fait le soft, on peut mixer à souhait, meme mettre une classe dans un fichier initialement prévu pour une form ou autre ...
    il y a d'ailleurs des fichiers cachés qui permettent de comprendre un peut plus visual studio (les fichiers .designer.vb), 2eme bouton en haut dans l'explorateur de solution pour les afficher
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Creation d'une collection de site avec un accès anonyme (access denied)
    Par hassine dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 13/04/2011, 17h20
  2. Creation d'une table dans ACCESS avec le composant TADOTABLE ?
    Par QAYS dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/10/2008, 17h39
  3. creation d'une variable dans un composant ?
    Par renard s dans le forum Composants VCL
    Réponses: 4
    Dernier message: 20/12/2005, 01h10
  4. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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