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 :

Transmettre une variable à travers les forms [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut Transmettre une variable à travers les forms
    Bonjour,

    J"ai créer une application qui prend la forme de 4 calculatrices sur 4 forms différentes, avec 4 zone de texte pour les 4 résultats différents.
    J'aimerais que les zones de texte se situant sur chacune des calculatrice ne m'indique pas le résultat des calculs de la form concernée, mais de toutes les forms !

    C'est à dire, j'ai admettons une résultat de A sur form1, B sur form 2, C sur form 3 et D sur form 4

    Pour le moment, sur Form 1 j'ai le résultat de A seulement, sur Form 2 j'ai le B, form 3 C et form 4 D, mais j'aimerais que sur chaque form, j'ai plutôt le résultat suivant (A+B+C+D).

    J'essaie d'être clair, et je m'excuse si c'est un eu brouillon !

    Comment est-ce que je peux attribuer à une variable (qui sera affichée en résultat sur toutes les calculatrices) les valeurs de chaque calculatrices ? Afin d'avoir form 1 = A+B+C+D, etc...

    J'ai regardé plein de tutoriels, mais j'ai toujours l'erreur "'total' est un type et ne peut pas être utilisé en tant qu’expression"

    Je vous remercie d'avance !

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Avant de tenter de répondre à ta question, je vais t'informer (peut-être ... ) d'un détail.
    Si dans un Form nommé UnForm (par exemple), tu déclares une variable Friend MaVariable As TypedeLaVariable (au lieu de Dim MaVariable As TypedeLaVairable), cette variable est accessible de n'importe quel autre Form avec la syntaxe suivante : UnForm.MaVariable.

    Sur base de cela, il y a la solution suivante.
    Selon ton exemple, tu as 4 Form : Form1, Form2, Fomr3 et Form4.
    Dans chacun, tu as une variable Resultat qui contient les valeurs A, B, C et D (respectivement).
    Je te propose de déclarer Friend Resultat dans chacun des Forms.
    Après cela, tu peux utiliser le résultat de chaque Form dans n'importe lequel des autres 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
     
    Public Class Form1
       Friend Resultat As ..........
    ' ... ... ...
     ' Uilisation des résultats des autres Form
          Form2.Resultat ... ' à obtenir ou à affecter
          Form3.Resultat ... ' à obtenir ou à affecter
          Form4.Resultat ... ' à obtenir ou à affecter
    ' ... ... ...
    End Class
     
    Public Class Form2
       Friend Resultat As ..........
    ' ... ... ...
     ' Uilisation des résultats des autres Form
          Form1.Resultat ... ' à obtenir ou à affecter
          Form3.Resultat ... ' à obtenir ou à affecter
          Form4.Resultat ... ' à obtenir ou à affecter
    ' ... ... ...
    End Class
     
    Public Class Form3
       Friend Resultat As ..........
    ' ... ... ...
     ' Uilisation des résultats des autres Form
          Form1.Resultat ... ' à obtenir ou à affecter
          Form2.Resultat ... ' à obtenir ou à affecter
          Form4.Resultat ... ' à obtenir ou à affecter
    ' ... ... ...
    End Class
     
    ' ... ... ...
    ' ... ... ...
    J'espère que ceci t'aidera ...

  3. #3
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut Optimisation
    C'est magique, j'ai gagné 50% de place en utilisant cette fonction que je ne connaissais pas !! Pile poil ce qu'il me fallait

    C'était peut-être évident, mais je début seulement, et je m'étais lancé un petit challenge durant le confinement !

    D'ailleurs, j'ai des valeurs qui ressemblent à ça :"2700000", et je n'arrive pas à trouver le moyen de mettre ma textbox dans un format monétaire, pourtant j'ai essayé avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Value = Format(ComboBox1.Value, "0.00 €")
    Comment dois-je m'y prendre pour que ma ligne qui ressemble à ça TextBox1.Text = form1.total me donne un résultat dans ce style "2 700 000 €" ?

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bien content de t'avoir, été utile

    Pour ton formatage monétaire, le code suivant devrait mettre le nombre au format monétaire du système du PC sur lequel s'exécute le programme.

    Sur base de ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            TextBox1.Text =  String.Format("{0:C}", form1.total)
    ...

  5. #5
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Et c'est possible d'appliquer ce formatage directement lorsque je déclare ma variable ?
    En sachant qu'elle ressemble à ceci : "Friend total As Integer" ?

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Non, ce n'est pas possible. Tu calcules avec des nombres qui sont entiers ou réels, avec en informatique, quelques distinctions de plages de valeurs (Integer, Long, Single, Double, ...). Il s'agit toujours de ces nombres que tu peux trouver dans les bouquins de math.
    Le formatage monétaire des valeurs n'est qu'un moyen de présentation des valeurs, une chaîne de caractères qui intègre un symbole particulier : $, €, £, USD, FS, ...

  7. #7
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Okay, j'ai remplacé partout et ça fonctionne, seul hic, je n'ai pas besoin des centimes ! j'ai bidouillé mais j'ai réussi à faire crash Visual Studio ( ⚆ _ ⚆ )

    Tu as appris tout ça de toi même ?

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Tu as appris tout ça de toi même ?
    Ben oui, d'une certaine manière ...
    Formations "scolaires", auto-formations, beaucoup de pratique ..., comme pour n'importe quel métier je suppose ...

    Pour les centimes, peut-être faut-il vérifier les paramètres régionaux du système ..., le format de l'euro comprends les 2 décimales.
    Il est toujours possible d'écrire une fonction qui suprime le séparateur décimal et les chiffres qui viennent ensuite.

    Nom : FormatMonetaire.jpg
Affichages : 248
Taille : 157,8 Ko

  9. #9
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Ca marche ! Effectivement, c'est sûrement comme avec tous les autres domaines, il faut de l'expérience !

    Et dernière question, si je veux créer une variable "Friend durée" qui gère le temps en partant de 00:00 (heures:mn), à afficher dans un TextBox, et pouvoir lui additionner des durées, de quelle manière dois-je procéder ?
    J'ai des difficultés, comme ce n'est pas sur une base 10, j'ai pas mal d'erreurs...

  10. #10
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Une petite remarque d'abord (si tu me le permets) : utiliser des caractères accentués dans les noms des variables, des procédures, ..., bref dans tout les objets du code que tu nommes toi-même, peut induire des problèmes.
    Donc, pas de déclaration Friend Durée, mais bien Friend Duree, plus exactement Friend Duree As Date. Les caractères utilisés pour nommer les choses en programmation ne devraient être que les caractères non accentués, en majuscules et en minuscules, les chiffres et le caractère de soulignement (underscore : _ ). A savoir encore que ces noms ne peuvent pas commencer par un chiffre. De la sorte, la dénomination des choses reste valable dans tous les langages de programmation.

    Pour ce qui est de calculer avec les Dates/Heures, je te propose de tester ces lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            Dim T As Date
            T = Now
            MessageBox.Show(T.ToLongDateString & " " & T.ToLongTimeString)
            T = T.AddMinutes(10)
            MessageBox.Show(T.ToLongDateString & " " & T.ToLongTimeString)
    J'espère que cet exemple te montrera la piste pour la suite ...

    Très bonne soirée

  11. #11
    Membre régulier
    Homme Profil pro
    none
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : none
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    C'est parfait !

    J'ai réussi à régler les problèmes que j'avais ! Je ne te remercierai jamais assez !

    Bonne soirée à toi, encore merci !!

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

Discussions similaires

  1. [PHP-JS] Transmettre une variable javascript vers php
    Par phpaide dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/05/2006, 08h30
  2. Transmettre une variable ?
    Par K20 dans le forum Langage
    Réponses: 10
    Dernier message: 01/01/2006, 22h55
  3. Partage d'une variable entre les processus fils
    Par Mehdi Feki dans le forum Linux
    Réponses: 7
    Dernier message: 09/01/2005, 13h34
  4. Transmettre une variable via un lien href
    Par developpeur_mehdi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/01/2005, 14h49
  5. Réponses: 12
    Dernier message: 23/06/2004, 13h50

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