Hey heute darf ich euch meinen kleinen Taschenrechner vorstellen!
Und das hat er drauf:
- alle Grundrechenarten
- Konstanten wie pi& e
- Neuheit: verschiedene Speicher( um etwas zu speicher, Strg+ Alt+ jeweiligen Speicher drücken, Zahl/Text muss natürlich markiert sein)
- Graphenzeichner( ist nur "verlinkt", danke an stayawayknight)
- einen Währungsrechner, die Kurse werden ständig aktualisiert(is noch en kleiner Fehler drin, wär nett, wenn ihn jemand berichtigen könnte)
- Formelsammlung, die noch ausgeweitet wird
- Suche für Mathevideos von oberprima.com ist integriert
To do:
- eigenen Graphenzeichner einbauen
- Formelsammlung erweitern
-cos/sin einbauen
Hier mein Skript:
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=F:\plus.ico
#AutoIt3Wrapper_outfile=Taschenrechner.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include<staticconstants.au3>
#include<guiedit.au3>
#include<inet.au3>
#include<string.au3>
#include<array.au3>
#include<comboconstants.au3>
#include<gdiplus.au3>
#include<misc.au3>
Const $pi = 3.14159
Const $e = 2.71828
Local $button[28]
Local $umrechner[11]
Local $formelsammlung[6]
Local $speicher[5]
Local $checkboxen[1]
Local $inputboxen[1]
;Global $read = IniReadSection(@ScriptDir & "\data.ini", "Währungskurse")
HotKeySet("^!a", "a")
HotKeySet("^!b", "b")
HotKeySet("^!c", "c")
HotKeySet("^!d", "d")
For $i = 1 To 4
$speicher[$i] = IniRead(@ScriptDir & "\data.ini", "Speicher", $i, "")
Next
$Form1_1 = GUICreate("Taschenrechner", 325, 610, 526, 122)
$MenuItem1 = GUICtrlCreateMenu("Funktionen")
$MenuItem2 = GUICtrlCreateMenuItem("Rechner", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("Graphenzeichner", $MenuItem1)
$MenuItem5 = GUICtrlCreateMenuItem("Währungsrechner", $MenuItem1)
$MenuItem6 = GUICtrlCreateMenuItem("Formelsammlung", $MenuItem1)
$button[1] = GUICtrlCreateButton("1", 40, 289, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[2] = GUICtrlCreateButton("2", 90, 289, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[3] = GUICtrlCreateButton("3", 140, 289, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[4] = GUICtrlCreateButton("4", 40, 339, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[5] = GUICtrlCreateButton("5", 90, 339, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[6] = GUICtrlCreateButton("6", 140, 339, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[7] = GUICtrlCreateButton("7", 40, 389, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[8] = GUICtrlCreateButton("8", 90, 389, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[9] = GUICtrlCreateButton("9", 139, 389, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[10] = GUICtrlCreateButton(".", 40, 440, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[11] = GUICtrlCreateButton("0", 90, 440, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[12] = GUICtrlCreateButton("=", 140, 440, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$Edit1 = GUICtrlCreateEdit("", 8, 29, 305, 237, BitOR($ES_CENTER, $es_readonly, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_HSCROLL, $WS_VSCROLL), BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
GUICtrlSetData(-1, "")
$button[13] = GUICtrlCreateButton("+", 191, 289, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[14] = GUICtrlCreateButton("-", 191, 339, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[15] = GUICtrlCreateButton("*", 191, 389, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[16] = GUICtrlCreateButton("/", 191, 440, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 8, 266, 305, 21)
$button[17] = GUICtrlCreateButton("^", 40, 491, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$button[18] = GUICtrlCreateButton("Wurzel", 90, 491, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$button[19] = GUICtrlCreateButton("Pi", 140, 491, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$button[20] = GUICtrlCreateButton("e", 191, 490, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
for $i= 13 to 20
guictrlsetbkcolor($button[$i],0xD8E4F8)
next
$button[21] = GUICtrlCreateButton("Bildschirm löschen", 216, 0, 108, 28, $WS_GROUP)
$button[22] = GUICtrlCreateButton("A", 40, 540, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
$button[23] = GUICtrlCreateButton("B", 90, 540, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
$button[24] = GUICtrlCreateButton("C", 140, 540, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
$button[25] = GUICtrlCreateButton("D", 190, 540, 50, 50, BitOR($BS_DEFPUSHBUTTON, $WS_GROUP))
$button[26] = GUICtrlCreateButton("Alle Speicher leeren", 0, 0, 108, 28, $WS_GROUP)
$button[27] = GUICtrlCreateButton("1 Speicher leeren", 108, 0, 108, 28, $WS_GROUP)
$umrechner[8] = GUICtrlCreateGroup("Umrechnung von Euro in ...", 7, 16, 195, 94)
$umrechner[1] = GUICtrlCreateCombo("", 20, 36, 173, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
;For $i = 1 To $read[0][0]
;GUICtrlSetData(-1, $read[$i][0])
;Next
$umrechner[2] = GUICtrlCreateInput("Betrag", 20, 56, 173, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$umrechner[3] = GUICtrlCreateInput("Ergebnis", 20, 76, 173, 21)
GUICtrlSetState(-1, $gui_disable)
$umrechner[4] = GUICtrlCreateGroup("Umrechnung von ... in Euro", 7, 112, 195, 94)
$umrechner[5] = GUICtrlCreateCombo("", 20, 132, 173, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
;For $i = 1 To $read[0][0]
;GUICtrlSetData(-1, $read[$i][0])
;Next
$umrechner[6] = GUICtrlCreateInput("Betrag", 20, 152, 173, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$umrechner[7] = GUICtrlCreateInput("Ergebnis", 20, 172, 173, 21)
GUICtrlSetState(-1, $gui_disable)
$umrechner[9] = GUICtrlCreateButton("Umrechnen!", 202, 150, 108, 28)
$umrechner[10] = GUICtrlCreateButton("Umrechnen!", 202, 55, 108, 28)
For $i = 1 To 10
GUICtrlSetState($umrechner[$i], $gui_hide)
Next
$formelsammlung[1] = GUICtrlCreateList("", 23, 9, 250, 250)
GUICtrlSetData(-1, "Ableitungen der Trigonometrie|Flächeninhalt Kreis|Kettenregel|Mantelfläche Kegel|Mantelfläche Zylinder|Mitternachtsformel|Umfang Kreis|Oberfläche Zylinder|Oberfläche Kegel|Volumen Kegel|Volumen Kugel|Oberfläche Kugel|")
$formelsammlung[2] = GUICtrlCreateButton("Formel anschauen", 24, 250, 131, 27, $WS_GROUP)
$formelsammlung[3] = GUICtrlCreateLabel("Brauchst du noch Hilfe? Dann such doch nach Mathevideos", 24, 300, 250, 40)
$formelsammlung[4] = GUICtrlCreateInput("Suchwort", 24, 340, 173, 21)
$formelsammlung[5] = GUICtrlCreateButton("Suche", 196, 339, 78, 22)
For $i = 1 To 5
GUICtrlSetState($formelsammlung[$i], $gui_hide)
Next
$Pic1 = GUICtrlCreatePic(@scriptdir&"\bg.jpg", 0, 0, 526, 200, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic2 = GUICtrlCreatePic(@scriptdir&"\bg.jpg", 0, 200, 526, 200, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic3 = GUICtrlCreatePic(@scriptdir&"\bg.jpg", 0, 400, 526, 200, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic4 = GUICtrlCreatePic(@scriptdir&"\bg.jpg", 0,600, 526, 200, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $MenuItem3
GUISetState(@SW_HIDE, $Form1_1)
RunWait(@ScriptDir & "\zeichner.exe")
GUISetState(@SW_SHOW, $Form1_1)
Case $MenuItem2
For $i = 1 To 27
GUICtrlSetState($button[$i], $gui_show)
Next
For $i = 1 To 10
GUICtrlSetState($umrechner[$i], $gui_hide)
Next
For $i = 1 To 5
GUICtrlSetState($formelsammlung[$i], $gui_hide)
Next
GUICtrlSetState($Edit1, $gui_show)
GUICtrlSetState($Input1, $gui_show)
GUICtrlSetData($button[12], "=")
GUICtrlSetFont($button[12], 20)
Case $MenuItem5
For $i = 1 To 27
GUICtrlSetState($button[$i], $gui_hide)
GUICtrlSetState($Edit1, $gui_hide)
GUICtrlSetState($Input1, $gui_hide)
Next
For $i = 1 To 5
GUICtrlSetState($formelsammlung[$i], $gui_hide)
Next
For $i = 1 To 10
GUICtrlSetState($umrechner[$i], $gui_show)
Next
Case $MenuItem6
For $i = 1 To 5
GUICtrlSetState($formelsammlung[$i], $gui_show)
Next
For $i = 1 To 27
GUICtrlSetState($button[$i], $gui_hide)
GUICtrlSetState($Edit1, $gui_hide)
GUICtrlSetState($Input1, $gui_hide)
Next
For $i = 1 To 10
GUICtrlSetState($umrechner[$i], $gui_hide)
Next
Case $button[1]
_GUICtrlEdit_AppendText($Input1, "1")
Case $button[2]
_GUICtrlEdit_AppendText($Input1, "2")
Case $button[3]
_GUICtrlEdit_AppendText($Input1, "3")
Case $button[4]
_GUICtrlEdit_AppendText($Input1, "4")
Case $button[5]
_GUICtrlEdit_AppendText($Input1, "5")
Case $button[6]
_GUICtrlEdit_AppendText($Input1, "6")
Case $button[7]
_GUICtrlEdit_AppendText($Input1, "7")
Case $button[8]
_GUICtrlEdit_AppendText($Input1, "8")
Case $button[9]
_GUICtrlEdit_AppendText($Input1, "9")
Case $button[11]
_GUICtrlEdit_AppendText($Input1, "0")
Case $button[12]
_GUICtrlEdit_AppendText($Edit1, GUICtrlRead($Input1) & @CRLF & "=" & Execute(GUICtrlRead($Input1)) & @CRLF & @CRLF)
$ergebnis = Execute(GUICtrlRead($Input1))
GUICtrlSetData($Input1, "")
IniWrite(@ScriptDir & "\data.ini", "Speicher", "ans", $ergebnis)
[/autoit] [autoit][/autoit] [autoit]Case $button[13]
If GUICtrlRead($Input1) = "" Then
GUICtrlSetData($Input1, IniRead(@ScriptDir & "\data.ini", "Speicher", "ans", "") & "+")
Else
_GUICtrlEdit_AppendText($Input1, "+")
EndIf
Case $button[14]
If GUICtrlRead($Input1) = "" Then
GUICtrlSetData($Input1, IniRead(@ScriptDir & "\data.ini", "Speicher", "ans", "") & "-")
Else
_GUICtrlEdit_AppendText($Input1, "-")
EndIf
Case $button[15]
If GUICtrlRead($Input1) = "" Then
GUICtrlSetData($Input1, IniRead(@ScriptDir & "\data.ini", "Speicher", "ans", "") & "*")
Else
_GUICtrlEdit_AppendText($Input1, "*")
EndIf
Case $button[16]
If GUICtrlRead($Input1) = "" Then
GUICtrlSetData($Input1, IniRead(@ScriptDir & "\data.ini", "Speicher", "ans", "") & "/")
Else
_GUICtrlEdit_AppendText($Input1, "/")
EndIf
Case $button[10]
_GUICtrlEdit_AppendText($Input1, ".")
Case $button[17]
_GUICtrlEdit_AppendText($Input1, "^")
Case $button[18]
_GUICtrlEdit_AppendText($Input1, "sqrt(x)")
Case $button[19]
_GUICtrlEdit_AppendText($Input1, $pi)
Case $button[20]
_GUICtrlEdit_AppendText($Input1, $e)
Case $button[21]
GUICtrlSetData($Edit1, "")
Case $button[22]
_GUICtrlEdit_AppendText($Input1, $speicher[1])
Case $button[23]
_GUICtrlEdit_AppendText($Input1, $speicher[2])
Case $button[24]
_GUICtrlEdit_AppendText($Input1, $speicher[3])
Case $button[25]
_GUICtrlEdit_AppendText($Input1, $speicher[4])
Case $button[26]
For $i = 1 To 4
$speicher[$i] = ""
IniWrite(@ScriptDir & "\data.ini", "Speicher", $i, "")
Next
Case $button[27]
$speicherleeren = InputBox("1 Speicher löschen", "Welcher Speicher soll gelöscht werden", "A")
Switch $speicherleeren
Case "A"
$speicher[1] = ""
IniWrite(@ScriptDir & "\data.ini", "Speicher", "1", "")
Case "B"
$speicher[2] = ""
IniWrite(@ScriptDir & "\data.ini", "Speicher", "2", "")
Case "C"
$speicher[3] = ""
IniWrite(@ScriptDir & "\data.ini", "Speicher", "3", "")
Case "D"
$speicher[4] = ""
IniWrite(@ScriptDir & "\data.ini", "Speicher", "4", "")
EndSwitch
For $i = 1 To 20
GUICtrlSetState($button[$i], $gui_hide)
GUICtrlSetState($Edit1, $gui_hide)
GUICtrlSetState($Input1, $gui_hide)
Next
GUICtrlSetState($formelsammlung[1], $gui_show)
Case $formelsammlung[5]
If GUICtrlRead($formelsammlung[4]) = "Suchwort" Or GUICtrlRead($formelsammlung[4]) = "" Then
MsgBox(16, "Fehler", "Gib ein gültiges Suchwort ein")
Else
ShellExecute("http://oberprima.com/mathenachhilfe/suche/?cx=008647203485790777655%3Agg_fg77guts&cof=FORID%3A9&ie=UTF-8&q=" & StringReplace(GUICtrlRead($formelsammlung[4]), " ", "+") & "e&sa=Suche&siteurl=oberprima.com%2Fmathenachhilfe%2F#922")
EndIf
Case $formelsammlung[2]
Switch GUICtrlRead($formelsammlung[1])
Case "Ableitungen der Trigonometrie"
MsgBox(0, "Ableitungen der Trigonometrie", "f(x)= sin(x) | f'(x)= cos(x)" & @CRLF & "f(x)= cos(x)|f'(x)=-sin(x)" & @CRLF & "f(x)=-sin(x) |f'(x)= -cos(x)" & @CRLF & "f(x)=-cos(x) | f'(x)= sin(x)")
Case "Flächeninhalt Kreis"
MsgBox(0, "Flächeninhaltkreis", "A= pi*r^2" & @CRLF & "A= (pi/4)*d²)")
Case "Kettenregel"
MsgBox(0, "Kettenregel", "f(x)= g(h(x))" & @CRLF & "f'(x)= h'(x) * g'(h(x))" & @CRLF & @CRLF & "Innere Ableitung mal äußere Ableitung.")
Case "Mantelfläche Zylinder"
MsgBox(0, "Mantelfläche Zylinder", "M= U*h")
Case "Mantelfläche Kegel"
MsgBox(0, "Mantelfläche Kegel", "M= r*s*pi")
Case "Mitternachtsformel"
MsgBox(0, "Mitternachtsformel", "x1, x2= (-b+-Sqrt(b²-4ac))/2a)")
Case "Oberfläche Kegel"
MsgBox(0, "Oberfläche Kegel", "A= r*pi(r+s)")
Case "Oberfläche Kugel"
MsgBox(0, "Oberfläche Kugel", "4*pi*r^2")
Case "Oberfläche Zylinder"
MsgBox(0, "Oberfläche Zylinder", "A=2G+M" & @CRLF & "A= 2*(pi*r²) + 2*pi*r*h)")
Case "Umfang Kreis"
MsgBox(0, "Umfang Kreis", "U= pi*d")
Case "Volumen Kegel"
MsgBox(0, "Volumen Kegel", "1/3G*h")
Case "Volumen Kugel"
MsgBox(0, "Volumen Kugel", "(4/3)pi*r³")
EndSwitch
Case $umrechner[10]
Msgbox(0,"Fehler", "Währungskurse zurzeit nicht verfügbar")
;GUICtrlSetData($umrechner[3], Number(StringReplace(GUICtrlRead($umrechner[1]), ",", ".")) * Number(IniRead(@ScriptDir & "\data.ini", "Währungskurse", GUICtrlRead($umrechner[2]), "")))
Case $umrechner[9]
Msgbox(0,"Fehler", "Währungskurse zurzeit nicht verfügbar")
;GUICtrlSetData($umrechner[7], Number(StringReplace(GUICtrlRead($umrechner[6]), ",", ".")) / Number(IniRead(@ScriptDir & "\data.ini", "Währungskurse", GUICtrlRead($umrechner[5]), "")))
EndSwitch
WEnd
; Speicherfunktionen
Func a()
$markiert = ControlCommand("", "", "Edit1", "Getselected")
IniWrite(@ScriptDir & "\data.ini", "Speicher", "1", $markiert)
$speicher[1] = $markiert
EndFunc ;==>a
Func b()
$markiert = ControlCommand("", "", "Edit1", "Getselected")
IniWrite(@ScriptDir & "\data.ini", "Speicher", "2", $markiert)
$speicher[2] = $markiert
EndFunc ;==>b
Func c()
$markiert = ControlCommand("", "", "Edit1", "Getselected")
IniWrite(@ScriptDir & "\data.ini", "Speicher", "3", $markiert)
$speicher[3] = $markiert
EndFunc ;==>c
Func d()
$markiert = ControlCommand("", "", "Edit1", "Getselected")
IniWrite(@ScriptDir & "\data.ini", "Speicher", "4", $markiert)
$speicher[4] = $markiert
EndFunc ;==>d
Downloads (alte Version, Währungsrechner noch drin): 22