Calcul du prix d'un trajet en voiture.

Soyez le premier à donner votre avis sur cette source.

Vue 18 325 fois - Téléchargée 1 027 fois

Description

Bonjour à tous,

Je vous présente mon premier logiciel en VB .NET, à la base tiré du tuto sur le VB .NET du Site Du Zéro, j'ai modifié entièrement l'interface graphique ainsi que le code. Donc j'aimerai vos avis pour savoir quoi rajouter, modifier, changer, etc...

Source / Exemple :


Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Icon = New Icon(SystemIcons.Application, 32, 32)
        TXT_CONSOMMATION.Focus() 'Met le focus sur le premier TextBox
        NumericUpDown1.Minimum = 1 'Defini le minimum de l'intervalle du NumericUpDown
        NumericUpDown1.Maximum = 7 'Defini son maximum
    End Sub
    'Fonction permettant de vérifier si tout les TextBox sont rempli, si non le bouton de calcul est désactivé.
    Sub verification()
        BT_CALCUL.Enabled = Me.TXT_CONSOMMATION.Text <> "" And Me.TXT_NBKM.Text <> "" And Me.TXT_PRIXESS.Text <> ""
    End Sub
    'Fonction de calcul, la fonction retourne vraiCout qui est Cout multiplié 
    'par la valeur choisi dans le NumericUpDown
    Function Calcul(ByVal Consommation As Double, ByVal NbKm As Double, ByVal PrixEss As Double) As Double
        Dim Cout As Double
        Cout = FormatNumber(((NbKm / 100) * Consommation) * PrixEss, 2) * NumericUpDown1.Value 'Calcul du cout, FormatNumber sert à mettre 2 chiffres après la virgule
        Return Cout
    End Function
    'Permet de déplacer la fenêtre en cliquant sur le BackGround
    'Trouvé par un ami, donc je ne connais pas la source de script
    Private Declare Function ReleaseCapture Lib "user32" () As Integer
    Private Const HTCAPTION As Integer = 2
    Private Const WM_NCLBUTTONDOWN As Integer = &HA1S
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer
    'Idem au-dessus
    Private Sub Form_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Left Then
            ReleaseCapture()
            SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0)
        End If
    End Sub
    Private Sub TXT_CONSOMMATION_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CONSOMMATION.KeyPress, TXT_NBKM.KeyPress, TXT_PRIXESS.KeyPress
        If e.KeyChar = Chr(27) Then 'Ligne 54 à 56, ferme la form quand echap est pressé
            Me.Close()
        End If
        If e.KeyChar = "." Then 'Le "." fait planter le prog
            e.KeyChar = "," 'Donc ligne 57 à 59 quand "." est pressé il devient ","
        End If
        If e.KeyChar = "," Or e.KeyChar >= "0" And e.KeyChar <= "9" Or e.KeyChar < " " Then 'Autorise les caractères allant de 0 à 9, et bloque les caractères ASCII non-affichable
            verification() 'Lance la fonction de vérification de champs vides
            Return
        End If
        Beep() 'Si un caractère "interdit" est entré, un bip est produit
        e.KeyChar = "" 'Ce caractère interdit, devient "rien"
    End Sub
    'Quand le bouton est pressé, il affiche le label et le résultat du calcul du prix
    Private Sub BT_CALCUL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_CALCUL.Click
        Me.LBL_COUT.Text = "Le coût du voyage sera de " & Calcul(Me.TXT_CONSOMMATION.Text, Me.TXT_NBKM.Text, Me.TXT_PRIXESS.Text) & "€"
    End Sub
    'Lance la fonction de vérification au moment où l'uutilisateur lache sa touche
    Private Sub TXT_CONSOMMATION_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TXT_CONSOMMATION.KeyUp, TXT_NBKM.KeyUp, TXT_PRIXESS.KeyUp
        verification()
    End Sub
    'Le bouton de fermeture est remplacer par un X, quand l'utilisateur clique dessus, la form se ferme
    Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
        MyBase.Close()
    End Sub
    'Quand l'utilisateur passe la souris sur le X, il devient rouge
    Private Sub Label5_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.MouseHover
        Label5.ForeColor = Color.Red
    End Sub
    'Quand l'utilisateur enlève la souris du X, il redevient noir
    Private Sub Label5_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.MouseLeave
        Label5.ForeColor = Color.Black
    End Sub
End Class

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
"si je retourne 0, et bien la fonction ne fonctionnera plus" -> on ne dév pas ici en JS dans un événement contenant uniquement "return tafonction(param1,param2);" donc la valeur retournée n'a pas d'importance. Mais ici tu n'as pas besoin d'une fonction, tu peux utiliser une Sub.
Messages postés
5
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
10 août 2011

@ghuysmans99 Je prends note de tes critiques pours les prochaines fois, je referai mon code plus proprement, et mieu expliqué, et au niveau de la fonction qui retourne toujours 1, c'est en fait pcq une fonction "doit" retourner une valeur, donc ici aucune variable, donc soit 1 soit 0 et je pense que tu as compris que si je retourne 0, et bien la fonction ne fonctionnera plus.

@Guillaume170194 Pour modifier la form ainsi, j'ai supprimer, à l'aide de la fonction dispo dans visual studio 2010, les bordures, ensuite j'ai créé une image que j'ai utilisé en image de background, et voila, après le bouton de fermeture j'ai voulu le placer ici pour changer un peu des autres forms Windows ( et surtout me rapprocher un minimum de celle de Mac :P )
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
(Y'a un lien pour modifier ta source)

###Function verification()
###Return 1
Pourquoi faire une fonction alors qu'elle retourne TOUJOURS la même chose ?

###'(Possibilité de raccourcir la suite de conditions)
Fais-le, le but n'est pas de poster le code le plus moche !

###'Sub permettant de bloquer n'importe quel autre caractère qu'un chiffre, ou une virgule
###Private Sub TXT_CONSOMMATION_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CONSOMMATION.KeyPress, TXT_NBKM.KeyPress, TXT_PRIXESS.KeyPress
### If e.KeyChar = Chr(27) Then Me.Close() '[ECHAP] -> on quitte### If e.KeyChar "." Then e.KeyChar "," 'Le point fait planter le calcul, donc .->,
### If e.KeyChar = "," Or e.KeyChar >= "0" And e.KeyChar <= "9" Or e.KeyChar < " " Then
### 'Touche autorisée
### verification()
### Else
### 'Touche interdite
### Beep()
### e.KeyChar = "" 'comme si aucune touche n'avait été pressée
### End If
###End Sub
Quand même plus lisible avec des commentaires bien placés et un If/Then/Else
Messages postés
47
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
23 avril 2020

J'ai un problème avec la temporary key

Une question

Comment a tu fait pour modifier la forme de la fenêtre?
Merci de ta réponse
Messages postés
5
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
10 août 2011

J'ai oublié un commentaire, de la ligne 60 à 62, quand un TextBox est séléctionné, si l'utilisateur clique sur échap, la form se femre.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.