Programmierung - Schwierigkeiten

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Programmierung - Schwierigkeiten

    Hallo liebe Programmierer :),

    Im Rahmen meines Fachabiturs, führe ich ein Abschlussprojekt durch, welches sich auf die Programmierung mit Visual Basic bezieht.

    Hierbei benötige ich eure Hilfe!

    Mein Programm soll ganz simple die Kosten für das eigene Auto im Jahr errechnen. Hauptsächlich addiert man alles zusammen.
    ~Anschaffungskosten + KfZ-Versicherung + KfZ- Steuern + Inspektionen, Reperaturen, etc + sonstige Kosten~

    Soweit hierzu. Jetzt wird bei den Anschaffungskosten folgendes ausgewählt:
    2 Checkboxen: eine mit Neukauf und eine mit monatliche Ratenzahlung.
    Zu den monatlichen Raten, eine Textbox und ein NumericUpDown mit Laufzeit in Monaten. Beim Neukauf eine Textbox.
    Jetzt möchte ich, wenn ich auf die Checkbox monatliche Ratenzahlung klicke, dass die Textbox vom Neukauf nicht änderbar ist, bzw man keinen Wert eingeben kann. (Am besten Grau hinterlegt) Genauso umgekehrt. Bei klick auf Neukauf, Textbox, sowie NumericUpDown keine Eingabe möglich.
    Wie setze ich das in einen Code um?

    Wie verarbeite ich den Wert aus dem NumericUpDown in eine einfache Formel?

    Erstmal bräucht ich eure Hilfe zu diesem Punkt.

    Danke im Vorraus !
    Hi Jamal,

    ich würde jeder Steuerelementegruppe (zwei) einen tag zuordnen. Bei Klick auf den einen Optionsbutton gehst du die Controls, die mit dem anderen Optionsbutton verbunden sein sollen und alle den gleichen tag haben, in einer Schleife ab und disabelst (grau) sie. Dabei wertest du immer nur den bestimmeten tag aus. Für den anderen Optionsbutton machst du es genau so (Wechselspiel in einer Prozedur).

    zahnonen
    Hey,

    dafür, dass es dein Abschlussprojekt ist, hast du viele Fragen und keinen vorhandenen Code. Du erwartest doch bitte nicht, dass dir hier jetzt jemand ein Teil deines Projektes schreibt und du eine gute Note einsteckst?

    Hast du bereit einen Code-Ansatz?

    Grundsätzlich sind das nur Basics: Anstatt zweier Checkboxen würde ich Radiobuttons verwenden, weil ja nur eine ausschließende Wahl möglich sein soll, oder? If-Then-Abfrage, ob Kauf oder Ratenzahlung. Falls Ratenzahlung ausgewählt, Wert der Textbox von String in Integer/Double konvertieren und mit dem Wert der NumericUpDown (NumericUpDown1.Value) multiplizieren. Ausblenden der nicht benötigten Controls (Textbox, etc...) jeweils mit .Enabled = false

    Alle genannten Teilschritte lassen sich wunderbar hier im Forum recherchieren.

    Gruß, Manschula
    Danke für die schnelle Antwort.

    Natürlich hab ich en Ansatz... hab bisher die Maske erstellt. Tool Tips angefügt und wo das Problem mit den Rechnungen ist, kann ich den Code mal hier hin kopieren.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. a = TextBox1.Text
    3. b = NumericUpDown1.TextAlign
    4. c = TextBox2.Text
    5. d = TextBox3.Text
    6. f = TextBox4.Text
    7. g = TextBox5.Text
    8. h = TextBox6.Text
    9. i = TextBox7.Text
    10. j = TextBox8.Text
    11. If CheckBox1.Checked Then
    12. k = (a * b) + d + f + g + h + i + j
    13. TextBox9.Text = k
    14. End If
    15. If CheckBox2.Checked Then
    16. k = c + d + f + g + h + i + j
    17. TextBox9.Text = k
    18. End If



    auf die If-Then beziehungen kam ich schon... Allerdings brauch ich noch ein bisschen Verständnis un Überblick ^^

    Das mit den Controls und Tags haben wir nie in der Schule gelernt... Wäre ein Beispiel-Code und Beschreibung möglich?

    Edit by ~blaze~:
    *vb-Tags eingefügt*

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

    Hey,

    - Textboxen enthalten, wie es der Name schon sagt, Text (Strings). Mit diesen zu rechnen ist nicht ganz "schön"; man rechnet mit Zahlen und nicht mit Text. Also zunächst den Wert der Textboxen umwandeln in Double.

    - NumericUpDown1.TextAlign gibt dir die Ausrichtung des Textes im NumericUpDown an; also links, recht oder mittig. Das willst du doch aber nicht, oder? Also verwende NumericUpDown1.Value

    - Statt Checkboxes würde ich RadioButtons verwenden. Checkboxes kannst du beide gleichzeitig aktivieren; RadioButtons aber nur in Abhängigkeit: "entweder-oder". Passt in deinem Fall besser, oder? Neukauf oder Ratenzahlung.

    - Beispiel, wie du den Wert einer Textbox mit dem Wert eines NumericUpDown multiplizieren kannst:

    VB.NET-Quellcode

    1. NumericUpDown1.Value * CDbl(TextBox1.Text)

    Alle angesprochenen Punkte wurden hier im Forum bereits ausführlich behandelt. Die Suchfunktion leistet hier einen tollen Beitrag... ;)

    P.S.: Wähle für zukünftige Threads bitte einen aussagekräftigen Titel: "Programmierung - Schwierigkeiten" passt ja nun wirklich zu jedem Thema. Für Code verwende bitte den entsprechenden Tag: fördert die Lesbarkeit.

    Gruß, Manschula
    Schon mal vielen Dank für die schnellen Antworten!

    zu den Textboxen-> hab es in Double

    NumericUpDown1. ist ebenfalls geändert... und genauso die Radiobuttons

    CDbl(TextBox1.Text)



    welche bedeutung hat die CDbl?


    und klar, ich versuche deine Tipps umzusetzen :) bin recht neu in der Programmierwelt und was das Forum betrifft. Aber danke!


    wenn ich die nicht verwendeten Textboxen in Enabled = False änder bei den eigenschaften, (nunja wie das geht ist mir klar)...aber wie mach ich das von dem Radiobutton abhängig?


    ich wär schonmal froh wenn das alels bis hierhin klappt.
    also das klappt alles bisher un so sieht der programmcode aus:

    VB.NET-Quellcode

    1. Dim a, b, c, d, f, g, h, i, j, k As Double
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If RadioButton1.Checked Then
    4. a = NumericUpDown1.Value 'Anschaffungskosten - Laufzeit mon.
    5. b = CDbl(TextBox1.Text) 'Anschaffungskosten - monatli. Betrag
    6. d = TextBox3.Text 'KFZ-Versicherung
    7. f = TextBox4.Text 'KFZ-Steuer
    8. g = TextBox5.Text 'Inspektionen, Reparaturen, etc.
    9. h = TextBox6.Text 'HAuptuntersuchung/ Abgasuntersuchung
    10. i = TextBox7.Text 'Gebühren und Beiträge
    11. j = TextBox8.Text 'Sonstige
    12. k = (a * b) + d + f + g + h + i + j
    13. TextBox9.Text = k 'Gesamtkosten
    14. End If
    15. If RadioButton2.Checked Then
    16. c = TextBox2.Text 'Anschaffungskosten - Preis/ Betrag
    17. d = TextBox3.Text 'KFZ-Versicherung
    18. f = TextBox4.Text 'KFZ-Steuer
    19. g = TextBox5.Text 'Inspektionen, Reparaturen, etc.
    20. h = TextBox6.Text 'HAuptuntersuchung/ Abgasuntersuchung
    21. i = TextBox7.Text 'Gebühren und Beiträge
    22. j = TextBox8.Text 'Sonstige
    23. k = c + d + f + g + h + i + j
    24. TextBox9.Text = k 'Gesamtkosten
    25. End If



    Allerdings komm ich immernoch nicht mit dem Grauhinterlegten und nich beschreibaren textfeld klar...

    danke nochmals :)

    Edit by ~blaze~:
    *vb-Tag eingefügt*

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

    @samus aran: wieso warum? so hab ichs gelernt... erst die variablen deklarieren mit denen man arbeiten will, weil dies "Platzhalter" für spätere werte sind. und anschließend für die variablen zum beispiel "c" dann die textbox2.text zuordne.. sprich den wert den ich dann da eingabe ist c. un damit rechne ich dann in der formel.

    @networkstorm: ich weiß nich ob ich schwer von begriff grad bin... aber habs readonly = in true geändert... allerdings möchte ich wenn ich radiobutton1 anklicke, dass die textbox die zu radiobutton2 gehört dann den zustand (readonly =true) aufweist...
    Da .Text aber ein String ist, und deine Variablen Doubles, musst du die .Text-Sachen vorher mit CDbl in Doubles umwandeln. :pinch:
    Schreib mal GANZ OBEN in die erste Zeile dies: "Option Strict On", und dann behebst du ALLE Fehler, die auftauchen.
    gut geschehen

    jetzt unterstreicht er mir z.b. hier

    If RadioButton2.Checked Then
    c = CDbl(TextBox2.Text) 'Anschaffungskosten - Preis/ Betrag
    d = CDbl(TextBox3.Text) 'KFZ-Versicherung
    f = CDbl(TextBox4.Text) 'KFZ-Steuer
    g = CDbl(TextBox5.Text) 'Inspektionen, Reparaturen, etc.
    h = CDbl(TextBox6.Text) 'HAuptuntersuchung/ Abgasuntersuchung
    i = CDbl(TextBox7.Text) 'Gebühren und Beiträge
    j = CDbl(TextBox8.Text) 'Sonstige
    k = c + d + f + g + h + i + j
    TextBox9.Text = k 'Gesamtkosten

    das k <.<

    wieso? muss ich da auch noch was ändern?
    Hey,

    Samus Aran schrieb:

    Von welchem Typ ist .Text? (Hinweis: Ich habs bereits erwähnt)

    das hast nicht nur du schon einmal hier erwähnt; aber ich glaube es wird trotz aller Wiederholungen konsequent ignoriert :D Konvertierung geht in beide Richtungen String <-> Double. Je nach Verwendung, als Textausgabe oder als Rechenvariable, musst du den Typ entsprechend anpassen.

    Gruß, Manschula
    Habs geschafft ! Danke :D

    ach, bis ich mal bisschen was vom Programmieren verstehe, dauert immer en bisschen :D

    Allerdings möchte ich immernoch bei klick auf RadioButton1 = Textbox2.text = Enabled = False... einfach dass man kein Wert da mehr eingeben kann...

    Wie kann ich den Eigenschaftswert abhängig vom Radiobutton machen?