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 :

Executer une fonction dans un winform


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Points : 27
    Points
    27
    Par défaut Executer une fonction dans un winform
    Bonjour,

    je suis un novice sur VB.net, j'utilisais auparavant VBA sous Excel pour mes programmes mais je me suis décidé à évoluer vers la VRAIE programmation. Voilà ma question va paraître stupide mais bon...

    J'ai un winform avec plusieurs numbox () et un bouton. J'ai par ailleurs une classe dans laquelle j'ai mis des fonctions financières (black and scholes). je voudrais que lorsque je click sur le bouton il utilise l'une des fonctions de ma classe.
    Donc je déclare les variables mais lorsque je veux calculer ma valeur avec la fonction, je ne sais pas où la trouver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim S As Double, K As Double, R As Double, T As Double, Sigma As Double, Price As Double
            S = NumericTextBox1.Text
            K = NumericTextBox2.Text
            R = NumericTextBox3.Text
            T = NumericTextBox4.Text
            Sigma = NumericTextBox5.Text
     
            Price = BSPrice(S, K, R, T, Sigma)
     
        End Sub
    Il m'écrit "le nom BSPrice n'est pas déclaré". Que puis je faire pour remédier à ça. Merci de votre aide.

    Anthony

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour,

    Je crois qu'il faut utiliser un module et non une classe dans laquelle stocker une liste de function que tu souhaites utiliser dans ton programme principale, voici un de mes postes où je me posais la question de l'organisation et du découpage de mon code.

    http://www.developpez.net/forums/d83...eque-function/

    ++

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Points : 27
    Points
    27
    Par défaut
    Bonjour et merci,

    Effectivement cela fonctionne. Mais alors à quoi servent les classes?
    Peux tu me donner un conseil.
    Mon logiciel sert à "Pricer" des produits complexes (options) et donc j'ai de nombreuses fonctions différentes (Binomial, Black and Scholes, Trinomial...) Les classes présentaient l'avantage de pouvoir "ranger" correctement les fonctions... et utiliser "inherits". De cette manière j'avais une classe "General Maths" et je me servais de ses fonctions dans mes autres classes.
    On ne peut pas les utiliser du tout?

    Merci encore

    Anthony

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Une classe est un modèle pour un objet.

    Ex:
    Appelons ta classe "clsFinance" (tu n'as pas indiqué son nom)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oFinReel = clsFinance ' déclare une variable objet de type clsFinance, elle ne pointe sur rien (nothing)
    oFinReel = New clsFinance ' cré une instance (un objet), basé sur le modèle de la classe clsFinance, pour cette variable objet.
    On peut tout faire d'un coup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim oFinReel As New clsFinance
    Ensuite on utilise l'objet (l'instance de clsFinance)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Price = oFinReel.BSPrice(S, K, R, T, Sigma)
    Mais il est préférable de placer les résultats dans des propriétés de ta classe.
    Résultat que tu pourras récupérer et utiliser tout au long de l'existance de ton objet.

    A+, Hervé.

  5. #5
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Si BSPrice est une fonction de ta classe alors pour pouvoir l'utiliser tu dois créer une variable du type de ta classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim var As MaClasse = New MaClasse()
    Une classe n'est qu'un "moule" à objets, donc pour l'utiliser tu dois l'instancier (créer une variable).

    Après il y a toujours la possibilité de créer les méthodes de ta classe comme partagées (Shared) ce qui te permettra de les utiliser sans instanciation comme ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse.Methode_Partagee()
    Voir ici pour plus d'informations.

    En espérant avoir été utile!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Points : 27
    Points
    27
    Par défaut
    Merci à tous les deux! That's Great!!
    J'espère que narutobaka est dans le coin il avait un problème similaire il me semble.

    Cheers

    Anthony

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour,

    Je suis toujours dans le coins .

    Et j'ai toujours du mal avec les classes , même si j'en ai compris le concept.

    D'ailleur si tu as des exemples de code suite au modification que tu as faites pour créer tes nouvelles classes, j'aimerai bien regarder ta méthodologie pour les créer.

    Je n'ai pas encore un niveau d'abstraction assez évoluer pour appréhender correctement la création de classe.

    J'essaye de m'y mettre, pour l'instant je me limite à la création de classe contenant des données membres :

    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
    'Classe définissant les informations d'un utilisateur
     
    Public Class DataEmploy
        Public Id_Employee As Integer
        Public Ressource As String
        Public contracted_Time As Decimal
        Public Maitrise As String
        Public Secteur As String
        Public Contrat As String
        Public Matricule As String
        'collection de journée de l'employé
        Public collCalEmploy As New System.Collections.Generic.List(Of CalEmploy)
        'collection de journée d'absence de l'employé
        Public collCalAbsEmploy As New System.Collections.Generic.List(Of CalAbsJourEmploy)
    End Class
    par exemple, mais il faut encore que je travaille la dessus rien qu'en rajoutant les getter / setters pour les données membres.

    ++ et bon dev

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour

    Je ne sais pas si qqn suis encore ce topic.

    Quoiqu'il en soit je suis tomber sur un tutoriel de la msdn qui explique comment créer une bibliothèque de fonction ou dll :

    http://msdn.microsoft.com/fr-fr/vbasic/cc526936.aspx

    Je trouve ce premier atelier très bien conçu.

    Si ca peut aider certains ++

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

Discussions similaires

  1. [Prototype] Exécuter une fonction dans un fichier JS
    Par nina.b dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 05/10/2009, 12h24
  2. Réponses: 7
    Dernier message: 26/05/2009, 19h55
  3. Executer une fonction dans une autre base de donnees
    Par yonnel dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/10/2007, 01h31
  4. Executer une fonction dans un module pas encore importe
    Par Aragorn_destroy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/06/2007, 14h21
  5. executer une fonction dans un regexp
    Par mobscene dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2007, 22h44

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