Wollte zur Übung einen kleinen BMI Berechner schreiben.
Es haben sich allerdings 2 Probleme ergeben:
1. Sobald ich einmal den Button "Berechne BMI" gedrückt habe wird mir ein Ergebnis angezeigt. Allerdings nur das eine Mal. Danach kann ich drücken und drücken und nichts passiert. Das gilt eig. für alle 3 Buttons.
2. Kriege ich zB. einen BMI von 19 raus, werden mir 3 Ergebnisse angezeigt anstatt eins. Dh. er prüft irgendwie nicht richtig, die ComboBox, sondern berechnet das für mehrere Sachen und gibt das Ergebnis raus.
Wollte zur Übung einen kleinen BMI Berechner schreiben.
Es haben sich allerdings 2 Probleme ergeben:
1. Sobald ich einmal den Button "Berechne BMI" gedrückt habe wird mir ein Ergebnis angezeigt. Allerdings nur das eine Mal. Danach kann ich drücken und drücken und nichts passiert. Das gilt eig. für alle 3 Buttons.
2. Kriege ich zB. einen BMI von 19 raus, werden mir 3 Ergebnisse angezeigt anstatt eins. Dh. er prüft irgendwie nicht richtig, die ComboBox, sondern berechnet das für mehrere Sachen und gibt das Ergebnis raus.
die probleme liegen in den abfragen.
erstmal wird "&" nur genutzt um strings/zeichen zu verknüpfen. willst du logische verknüpfungen machen, musst du "And" nutzen.
nun zu deinen abfragen. das ganze würde ich natürlich zu einer abfrage zusammen fassen. wenn es sich um einen übergewichtigen mann handelt, wird das ergebnis wohl keine untergewichtige frau mehr sein.
also:
Code:
$BerechneBMI = GUICtrlRead($Gewicht) / GUICtrlRead($Groesse)^2
If $BerechneBMI < 18 And GUICtrlRead($Geschlecht) = "Frau" Then
MsgBox(0, "Bewertung", "Untergewicht")
ElseIf $BerechneBMI < 26 & GUICtrlRead($Geschlecht) = "Frau" Then
MsgBox(0, "Bewertung", "Normalgewicht")
ElseIf GUICtrlRead($Geschlecht) = "Frau" Then
MsgBox(0, "Bewertung", "Übergewicht")
ElseIf $BerechneBMI < 20 And GUICtrlRead($Geschlecht) = "Mann" Then
MsgBox(0, "Bewertung", "Untergewicht")
ElseIf $BerechneBMI < 28 & GUICtrlRead($Geschlecht) = "Mann" Then
MsgBox(0, "Bewertung", "Normalgewicht")
Else
MsgBox(0, "Bewertung", "Übergewicht")
EndIf
Bleibt nur noch das Problem, dass wenn ich man zB Daten ändert ( oder auch nicht) und nochmal entweder BerechneBMI oder Idealgewicht klickt nichts mehr kommt beim 2. Mal.
Nur bei BewerteBMI kommt noch die MsgBox mit dem Ergebnis.
Vllt weiß da auch jmd weiter.
Bleibt nur noch das Problem, dass wenn ich man zB Daten ändert ( oder auch nicht) und nochmal entweder BerechneBMI oder Idealgewicht klickt nichts mehr kommt beim 2. Mal.
Nur bei BewerteBMI kommt noch die MsgBox mit dem Ergebnis.
Vllt weiß da auch jmd weiter.
Dein Problem liegt darin, das du die Variablen in der der Wert vom Idealgewicht und der Wert vom BMI gespeichert wird, genauso genannt hast wie die Buttonvariablen. Sprich wenn du nun auf den Button Berechne BMI klickst, führt er die berechnung aus und überschreibt die Variable "$BerechneBMI" mit dem BMI Wert. Dadurch das in der Variable nun nichtmehr der Button gespeichert ist, kann das Programm nicht mehr erkennen, wann der Button gedrückt worden ist. Lange rede kurzer sinn, einfach die Variablem ändern.