|
You last visited: Today at 10:44
Advertisement
AutoIt BMI Berechner Problem
Discussion on AutoIt BMI Berechner Problem within the AutoIt forum part of the Coders Den category.
11/02/2010, 16:52
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
|
AutoIt BMI Berechner Problem
Hey E*pvpers.
Ich übe mich zurzeit ein wenig an AutoIt.
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.
Hier einmal der Code:
PHP Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Gewicht", 599, 285, 192, 124)
$Gewicht = GUICtrlCreateInput("Gewicht", 376, 24, 145, 21)
$BerechneBMI = GUICtrlCreateButton("Berechne Bmi", 208, 96, 201, 33, $WS_GROUP)
$Idealgewicht = GUICtrlCreateButton("Idealgewicht", 208, 144, 201, 33, $WS_GROUP)
$BewerteBMI = GUICtrlCreateButton("BewerteBMI", 208, 192, 201, 33, $WS_GROUP)
$Geschlecht = GUICtrlCreateCombo("Geschlecht", 256, 24, 105, 25)
GUICtrlSetData(-1, "Mann|Frau")
$Groesse = GUICtrlCreateInput("Groesse", 96, 24, 129, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BerechneBMI
$BerechneBMI = GUICtrlRead($Gewicht) / GUICtrlRead($Groesse)^2
MsgBox(0,"Dein BMI", $BerechneBMI)
Case $Idealgewicht
$Idealgewicht = GUICtrlRead($Groesse)^2 * 22
MsgBox(0,"Dein Idealgewicht", $Idealgewicht)
Case $BewerteBMI
$BerechneBMI = GUICtrlRead($Gewicht) / GUICtrlRead($Groesse)^2
If $BerechneBMI < 18 & GUICtrlRead($Geschlecht) = "Frau" Then MsgBox(0, "Bewertung", "Untergewicht")
If $BerechneBMI >18 & $BerechneBMI <25 & GUICtrlRead($Geschlecht) = "Frau" Then MsgBox(0, "Bewertung", "Normalgewicht")
If $BerechneBMI > 26 & GUICtrlRead($Geschlecht) = "Frau" Then MsgBox(0, "Bewertung", "Übergewicht")
If $BerechneBMI < 20 & GUICtrlRead($Geschlecht) = "Mann" Then MsgBox(0, "Bewertung", "Untergewicht")
If $BerechneBMI > 20 & $BerechneBMI < 28 & GUICtrlRead($Geschlecht) = "Mann" Then MsgBox(0, "Bewertung", "Normalgewicht")
If $BerechneBMI > 28 & GUICtrlRead($Geschlecht) = "Mann" Then MsgBox(0, "Bewertung", "Übergewicht")
EndSwitch
WEnd
Hoffe mir kann da vllt jmd helfen.
Lg
Niklas
|
|
|
11/02/2010, 17:01
|
#2
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Problem 2:
ElseIf
|
|
|
11/02/2010, 17:11
|
#3
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Belur
Hey E*pvpers.
Ich übe mich zurzeit ein wenig an AutoIt.
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
|
|
|
11/02/2010, 19:06
|
#4
|
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
|
Okay. Danke euch beiden
Klappt.
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.
|
|
|
11/03/2010, 07:12
|
#5
|
elite*gold: 0
Join Date: Sep 2008
Posts: 526
Received Thanks: 82
|
Quote:
Originally Posted by Belur
Okay. Danke euch beiden
Klappt.
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.
Zum Beispiel so:
PHP Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Gewicht", 599, 285, 192, 124)
$Gewicht = GUICtrlCreateInput("Gewicht", 376, 24, 145, 21)
$BerechneBMIbtn = GUICtrlCreateButton("Berechne Bmi", 208, 96, 201, 33, $WS_GROUP)
$Idealgewichtbtn = GUICtrlCreateButton("Idealgewicht", 208, 144, 201, 33, $WS_GROUP)
$BewerteBMI = GUICtrlCreateButton("BewerteBMI", 208, 192, 201, 33, $WS_GROUP)
$Geschlecht = GUICtrlCreateCombo("Geschlecht", 256, 24, 105, 25)
GUICtrlSetData(-1, "Mann|Frau")
$Groesse = GUICtrlCreateInput("Groesse", 96, 24, 129, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BerechneBMIbtn
$BerechneBMI = GUICtrlRead($Gewicht) / GUICtrlRead($Groesse)^2
MsgBox(0,"Dein BMI", $BerechneBMI)
Case $Idealgewichtbtn
$Idealgewicht = GUICtrlRead($Groesse)^2 * 22
MsgBox(0,"Dein Idealgewicht", $Idealgewicht)
Case $BewerteBMI
$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
EndSwitch
WEnd
|
|
|
11/03/2010, 10:02
|
#6
|
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
|
Okay. Klappt. Thx.
|
|
|
Similar Threads
|
K/D-Berechner
10/14/2010 - WarRock Guides, Tutorials & Modifications - 20 Replies
Hey,
habe hier mal einen K/D-Berechner Tool gemacht :mofo:
Screen:
http://img411.imageshack.us/img411/3757/kdberechne rscreenshot.jpg
Downloadlink:
Von Uploaded
|
All times are GMT +1. The time now is 10:44.
|
|