Umrechner erstellen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von kai996.

    Umrechner erstellen

    hi,

    ich möchte ein programm erstellen mit dem man dinge umrechnen kann zb. 5 km in m usw.
    wie bekomme ich es hin das die gewählte maßeinheit umgerechnet wird? da ich für die größen comboboxen verwende in dem man sich selber auswählen kann von welcher größe man zu einer anderen größe umrechnet.
    wenn ich bestimmte maßeinheiten umrechnen will ist das alles kein problem aber wenn man sich die maßeinheiten auswählen kann sieht das ganze schon wieder anders aus. deswegen benötige ich etwas hilfe.

    hier nen bild von meinem programm.



    mfg chris :)
    Hi,

    am einfachsten wäre es wenn du für jede umrechnung eine Funktion schreibst und die dann im Button_cklick event aufrufst
    kleines Beispiel:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Public Function CM_to_Meter(ByVal cm As Double) As Double
    4. Dim returner As Double = cm / 100 ' hier dein Berechnunsprozedere
    5. Return returner
    6. End Function
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. If ComboBox1.SelectedIndex = 0 And ComboBox2.SelectedIndex = 1 Then
    9. MsgBox(CM_to_Meter(CDbl(TextBox1.Text)).ToString)
    10. End If
    11. End Sub
    12. End Class

    8-) faxe1008 8-)
    Naja ich finde es übersichtlicher den im code designer kann man einzelne Funktionen ausblenden.
    Das umrechnen in eine Grundeinheit und die Weiterverarbeitung finde ich jetzt allerdings auch nicht unaufwendiger :rolleyes:, da man ja auch zunächst wieder überprüfen muss um welche einheit es sich handelt diese in die Grundeinheit umzurechnen und das Ergebnis dann wieder in der Grundeinheit->Zieleinheitfunktion einzugeben.

    Letzlich bleibt es dem TE überlassen für welchen Ansatz er sich entscheidet.

    8-) faxe1008 8-)
    Eine Überlegung wär auch mit dem Selected-Index herumzuspielen. Also xcm = xm * 10^Selected-Index . Da müsstest du die GUI entsprechend anpassen.

    @faxe10080
    Also die Umrechnung würde ich auch in einer Funktion auslagern, aber nach Basis geordnet nicht nach Einheit.
    So würde das doch gehen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Modus As String
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Select Case ComboBox1.Text
    5. Case "Tag(e)"
    6. Modus = "Monate ausrechnen"
    7. Case "Monat(e)"
    8. Modus = "Tage ausrechnen"
    9. End Select
    10. Select Case ComboBox2.Text
    11. Case "Monat(e)"
    12. If Modus = "Monate ausrechnen" Then
    13. TextBox1.Text = TextBox1.Text / 30
    14. End If
    15. Case "Tag(e)"
    16. If Modus = "Tage ausrechnen" Then
    17. TextBox1.Text = TextBox1.Text * 30
    18. End If
    19. End Select
    20. End Sub
    21. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Michael K.“ ()

    danke für die schnelle hilfe,

    ich habe es nun wie folgt gelöst:

    VB.NET-Quellcode

    1. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    2. Dim ergebnis As Double
    3. Select Case com1länge.SelectedItem.ToString
    4. Case "km"
    5. If com2länge.SelectedItem = "km" Then
    6. ergebnis = TextBox3.Text / 1
    7. MsgBox(ergebnis, MsgBoxStyle.Information, "Ergebnis")
    8. End If
    9. If com2länge.SelectedItem = "m" Then
    10. ergebnis = TextBox3.Text * 1000
    11. MsgBox(ergebnis, MsgBoxStyle.Information, "Ergebnis")
    12. End If
    13. If com2länge.SelectedItem = "dm" Then
    14. ergebnis = TextBox3.Text * 10000
    15. MsgBox(ergebnis, MsgBoxStyle.Information, "Ergebnis")
    16. End If
    17. If com2länge.SelectedItem = "cm" Then
    18. ergebnis = TextBox3.Text * 100000
    19. MsgBox(ergebnis, MsgBoxStyle.Information, "Ergebnis")
    20. End If
    21. If com2länge.SelectedItem = "mm" Then
    22. ergebnis = TextBox3.Text * 1000000
    23. MsgBox(ergebnis, MsgBoxStyle.Information, "Ergebnis")
    24. End If
    25. End Select


    das ist für km umrechnung genauso habe ich es für m, cm, mm gemacht.ist zwar viel schreibkram aber es funzt.

    user2100 schrieb:

    VB.NET-Quellcode

    1. ergebnis = TextBox3.Text * 1000
    Was soll das sein?
    Ein String multipliziert mit einer Zahl?
    Gib Deinem Programm ganz schnell Option Strict On.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    es liefert jedoch das gewünschte ergebnis.

    sollte man dennoch versuchen einen buchstaben einzugeben bekommt der nutzer eine fehlermeldung
    weil ich das ganz mit "Try" --> catch ex as exception --> end try versehen habe.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „user2100“ ()

    user2100 schrieb:

    das gewünschte ergebnis.
    Aber nur, weil das Studio schlauer ist als Du und es bei solch simplem Code weiß, was zu tun ist.
    Was Du machst, ist das Vermatschen von Äpfeln mit Glühbirnen. Und Du sparst Dir einige "dumme Anfragen" an das Forum, wenn Du Dir gleich einen ordentlichen Stil angewöhnst. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!