Hallo JOTHA,
Ich glaube ein Paar Erklärungen, wie Ich mir das vorstelle sind angebracht.
Ich unterscheide 3 Phasen:
- Eingabe ( hier sind es eigentlich schon 3 Funktionen: Buchstaben erfassen, verarbeiten und anzeigen)
- Rechnung
- Ausgabe (Anzeige)
Eingabe:
Hier müssen wir die Buchstaben der Tastatur erfangen und anzeigen.
Zur Anzeige möchtest Du das Deutsches Format dazu sind die TextBox.Text und Label.Text Felder da.
Zum Rechnen brauchst Du das Englische Format dazu verwende Ich Variablen.
Wenn Du genauer in die Tastaturroutine rein schaust, sind immer 2 Codelinien, zumBeispiel für das Gewicht:
Gewicht1.Text ist der Inhalt des Textfelds der TextBox, Deutsches Format, und das ist für mich nur ein Textfeld nur zur Anzeige
Gewicht1Wert ist der Rechenwert, Englisches Format ist für mich eine Variable
Das Gleiche gilt für die anderen Werte.
Im Prinzip benütze Ich nie Textfelder als Variablen. Und rechne nur mit Variablen, nach meiner obigen persönlichen Definition.
Rechnung:
Hier brauchst Du Variablen im Englischen Format !
Die Rechnung ist
und das 'Ergebniss' ist eine Variable, die für spätere Rechnungen oder sont noch was zur Verfügen steht.
Anzeige:
Hier müssen wir die Variablen in Textfeldern anzeigen, und da Dein Anzeigeformat nicht das gleiche ist wie das Rechen- oder Variableformat mussen wir die Variablen ins Anzeigeformat umwandeln.
Da bei der Eingabe aber zugleich beide Formate erzeugt werden, brauchen wir nur eine Umwandlungsroutine Englisch>Deutsch zur Anzeige.
Das heisst dass die LabelErgebnis1A.Text Linie unnütz ist und
LabelErgebnis1B.Text nur zur Anzeige im Deutschen Format dient.
Ich hoffe dass diese Erklärung nicht zu pedantisch aber klar ist.
Noch eine Frage, in deiner Letzten Version hast Du 2 Goldankauf Module die auf den ersten Blick identisch sind ausser dem Index 1 und 2. Dann schreibst Du dass es wahrscheinlich 7 werden sollen. Heisst das dass Du 7 Goldaufkaufe verwalten willst und dazu mit 7 quasi identischen Modulen arbeiten willst? Wenn ja gibt es eine viel einfachere und übersichtliche Möglichkeit.
Mit Arrayvariablen zu arbeiten.
Zum Beispiel:
Gewicht(1), Gewicht(2), Gewicht(3) . . .
Karat(1), Karat(2), Karat(3) . . .
Ankauf(1), Ankauf(2), Ankauf(3) . . .
Kosten(1), Kosten(2), Kosten(3) . . . (Ergebniss)
Dazu braucht man nur ein Modul und einen Index um die verschiedenen Arrayelemente zu unterscheiden.
Die Zusammenfassung wäre dann auch viel einfacher.
Könntest Du einmal näher erklären was das Programm am Ende machen soll damit Ich besser Verstehe und eventuelle Vorschläge besser gezielt sein könnten.
Die Einfügung für die 'Kommaidiotensicherheit' siet richtig aus.
Habe kurz mit der letzen Vesion 'gespielt' und fand die Anordnung der 3 Eingabefeldern etws verwirrend. Weil von oben angefangen habe und nach der Karateingabe, im 2ten Feld, gleich die Rechnung durchgeführt wurde bevor der Ankaufwert eingegeben wurde. Wäre es nicht logischer die 2 letzten Felder zu vertauschen?
Jetzt noch die letzte blöde Frage: warum willst Du unbedingt das Deutsche Format bebehalten ?
Meine eigene Erfahrung ist dass mir das immer Probleme gab, in anderen Basics.
Für Alles was mit Comuter zu tun hat, habe Ich mich seit Jahren auf das angelsächsische umgestellt und habe es nie bereut. Aber wie schon mal gesagt es ist alles Geschmacksache.
Grüsse.
Ich glaube ein Paar Erklärungen, wie Ich mir das vorstelle sind angebracht.
Ich unterscheide 3 Phasen:
- Eingabe ( hier sind es eigentlich schon 3 Funktionen: Buchstaben erfassen, verarbeiten und anzeigen)
- Rechnung
- Ausgabe (Anzeige)
Eingabe:
Hier müssen wir die Buchstaben der Tastatur erfangen und anzeigen.
Zur Anzeige möchtest Du das Deutsches Format dazu sind die TextBox.Text und Label.Text Felder da.
Zum Rechnen brauchst Du das Englische Format dazu verwende Ich Variablen.
Wenn Du genauer in die Tastaturroutine rein schaust, sind immer 2 Codelinien, zumBeispiel für das Gewicht:
B4X:
Gewicht1.Text=Gewicht1.Text&StrAt(Sender,12)
Gewicht1Wert=Gewicht1Wert&StrAt(Sender,12)
Gewicht1Wert ist der Rechenwert, Englisches Format ist für mich eine Variable
Das Gleiche gilt für die anderen Werte.
Im Prinzip benütze Ich nie Textfelder als Variablen. Und rechne nur mit Variablen, nach meiner obigen persönlichen Definition.
Rechnung:
Hier brauchst Du Variablen im Englischen Format !
Die Rechnung ist
B4X:
Ergebnis = Gewicht1Wert * AnkaufWert * Karat1Wert /1000
Anzeige:
Hier müssen wir die Variablen in Textfeldern anzeigen, und da Dein Anzeigeformat nicht das gleiche ist wie das Rechen- oder Variableformat mussen wir die Variablen ins Anzeigeformat umwandeln.
Da bei der Eingabe aber zugleich beide Formate erzeugt werden, brauchen wir nur eine Umwandlungsroutine Englisch>Deutsch zur Anzeige.
Das heisst dass die LabelErgebnis1A.Text Linie unnütz ist und
LabelErgebnis1B.Text nur zur Anzeige im Deutschen Format dient.
Ich hoffe dass diese Erklärung nicht zu pedantisch aber klar ist.
Noch eine Frage, in deiner Letzten Version hast Du 2 Goldankauf Module die auf den ersten Blick identisch sind ausser dem Index 1 und 2. Dann schreibst Du dass es wahrscheinlich 7 werden sollen. Heisst das dass Du 7 Goldaufkaufe verwalten willst und dazu mit 7 quasi identischen Modulen arbeiten willst? Wenn ja gibt es eine viel einfachere und übersichtliche Möglichkeit.
Mit Arrayvariablen zu arbeiten.
Zum Beispiel:
Gewicht(1), Gewicht(2), Gewicht(3) . . .
Karat(1), Karat(2), Karat(3) . . .
Ankauf(1), Ankauf(2), Ankauf(3) . . .
Kosten(1), Kosten(2), Kosten(3) . . . (Ergebniss)
Dazu braucht man nur ein Modul und einen Index um die verschiedenen Arrayelemente zu unterscheiden.
Die Zusammenfassung wäre dann auch viel einfacher.
Könntest Du einmal näher erklären was das Programm am Ende machen soll damit Ich besser Verstehe und eventuelle Vorschläge besser gezielt sein könnten.
Die Einfügung für die 'Kommaidiotensicherheit' siet richtig aus.
Habe kurz mit der letzen Vesion 'gespielt' und fand die Anordnung der 3 Eingabefeldern etws verwirrend. Weil von oben angefangen habe und nach der Karateingabe, im 2ten Feld, gleich die Rechnung durchgeführt wurde bevor der Ankaufwert eingegeben wurde. Wäre es nicht logischer die 2 letzten Felder zu vertauschen?
Jetzt noch die letzte blöde Frage: warum willst Du unbedingt das Deutsche Format bebehalten ?
Meine eigene Erfahrung ist dass mir das immer Probleme gab, in anderen Basics.
Für Alles was mit Comuter zu tun hat, habe Ich mich seit Jahren auf das angelsächsische umgestellt und habe es nie bereut. Aber wie schon mal gesagt es ist alles Geschmacksache.
Grüsse.