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 6 et antérieur Discussion :

Classes / Propriétés avec transmission de valeur dans l'appel


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur Génie Civil
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Génie Civil

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut Classes / Propriétés avec transmission de valeur dans l'appel
    Bonjour,
    J'ai créer une classe Point2d avec les propriétés suivantes:

    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
     
    Option Explicit
    Private mX As Double
    Private mY As Double
    Private mdistance1 As Double
     
    Property Get X() As Double
        ' Propriété en lecture
        X = mX
    End Property
    Property Let X(X As Double)
        ' Propriété en écriture
        mX = X
    End Property
    Public Property Get Y() As Double
     Y = mY
    End Property
    Public Property Let Y(Y As Double)
     mY = Y
    End Property
    Public Function Distance(Ptf As Point2D) As Double
    mdistance1 = ((Ptf.X - mX) ^ 2 + (Ptf.Y - mY) ^ 2) ^ 0.5
    End Function
    La propriété qui coince est "Distance" qui calcul la distance entre deux points. L'un qui est l'objet appelant et l'autre qui est transmis en variable.
    Quand j'appelle cette propriété le calcul se fait bien mais la valeur Distance n'est pas exportée au dehors de la fonction.
    Exemple
    Je crée 2 points puis, j'appelle la propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim Pt1 as new Point2d, pt2 as new Point2d, Dist as double
    let pt1.x=2: let pt1.y=0
    Dist = Pt2.Distance(Pt1)
    Si je regarde le déroulement dans la propriété le calcul se fait bien mais je ne récupère rien dans Dist.

    La question générale est
    Comment faire un appel à une propriété qui comporte une variable ?

    PS :
    J'ai contourné le pb avec non pas une propriété mais avec une routine de type
    call distance( Pt1, Pt2, Valeur)
    mais c'est moins pratique.

    Merci à tous

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    B'soir

    en VB pour le retour d'une fonction tu fais fonction=valeur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function Distance(Ptf As Point2D) As Double
    mdistance1 = ((Ptf.X - mX) ^ 2 + (Ptf.Y - mY) ^ 2) ^ 0.5
    Distance =mdistance1
    End Function

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Génie Civil
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Génie Civil

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut
    Merci beaucoup, je l'avais totalement oublié
    Marmounet

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/09/2012, 16h32
  2. [AJAX] Transmission de valeurs dans l'URL
    Par chrislav dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/02/2009, 16h30
  3. Réponses: 2
    Dernier message: 04/06/2008, 17h16
  4. Réponses: 7
    Dernier message: 14/01/2008, 12h12
  5. Réponses: 11
    Dernier message: 11/03/2007, 21h30

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