Hey Leute
ich hab mir mal gedacht ich mache mal einen Rechner für meinen Rechner
Ich finde der sieht ganz gut aus auch ohne Bilder;)
Update: Jetzt mit Graphen zeichnen und noch mit Währungsrechner auf anregung von Twodollarbillie;)
Der GTR kommt von Stayawayknight:)
Hier das Skript:
Spoiler anzeigen
#include<GuiConstantsEx.au3>
#include<WindowsConstants.au3>
#include<EditConstants.au3>
#include<ButtonConstants.au3>
#include<SliderConstants.au3>
#include<GuiSlider.au3>
#include<Misc.au3>
#include<GDIPlus.au3>
#include<SliderConstants.au3>
#include<GuiListView.au3>
#include<Array.au3>
#include<ComboConstants.au3>
Dim $Rechner[39]
Dim $umrechnung[10]
Dim $Label[6]
Global $speichervar
Global $iNully, $iNullx, $Pen1, $Pen2, $Pen3, $bDrawed, $Brush1, $hGui, $cObjektlist, $hGraphics, $sBackgroundcolor, $cCGrid, $cCScale, $cCUnitCircle, $iAbstand, $hSettings, $iLineWidth, $sTitle2, $sXColor, $cButtonBk, $cButtonSystem, $cButtonGrid, $cButtonMark
$Taschenrechner = GUICreate("Taschenrechner",580,370,-1,-1,$WS_POPUP)
GUISetBkColor(0x000000)
$verschiebungscontrol=GUICtrlCreateLabel("",330,0,190,40,"",$GUI_WS_EX_PARENTDRAG)
$bClose = GUICtrlCreateButton("X",550,10,20,20)
$bMinimize = GUICtrlCreateButton("_",520,10,20,20)
$bRechner = GUICtrlCreateButton("Taschenrechner",10,10,100,20)
$bWaehrung = GUICtrlCreateButton("Währungsrechner",120,10,100,20)
$bGTR = GUICtrlCreateButton("GTR",230,10,100,20)
$input = GUICtrlCreateInput("",10,40,560,50)
$Label[1] = GUICtrlCreateLabel("Made By:",10,100,130,15)
$Label[2] = GUICtrlCreateLabel("DFPWare",10,120,130,15)
$Label[3] = GUICtrlCreateLabel("Special Thanks to:",10,140,130,15)
$Label[4] = GUICtrlCreateLabel("Twodollarbillie",10,160,130,15)
$Label[5] = GUICtrlCreateLabel("Stayawayknight",10,180,130,15)
For $i=1 To 5 Step 1
GUICtrlSetColor($Label[$i],0xFFFFAA)
Next
GUICtrlSetFont($input,30,1000)
GUICtrlSetBkColor($input,0xFFFFAA)
#Region Taschenrechner-Controls
$Rechner[3] = GUICtrlCreateButton("ASin",150,100,60,40)
$Rechner[4] = GUICtrlCreateButton("ACos",220,100,60,40)
$Rechner[5] = GUICtrlCreateButton("AC",300,100,60,40)
$Rechner[6] = GUICtrlCreateButton("(-)",370,100,60,40)
$Rechner[7] = GUICtrlCreateButton("÷",440,100,60,40)
$Rechner[8] = GUICtrlCreateButton("x",510,100,60,40)
$Rechner[11] = GUICtrlCreateButton("ATan",150,155,60,40)
$Rechner[12] = GUICtrlCreateButton("%",220,155,60,40)
$Rechner[13] = GUICtrlCreateButton("7",300,155,60,40)
$Rechner[14] = GUICtrlCreateButton("8",370,155,60,40)
$Rechner[15] = GUICtrlCreateButton("9",440,155,60,40)
$Rechner[16] = GUICtrlCreateButton("-",510,155,60,40)
$Rechner[17] = GUICtrlCreateButton("(",10,210,60,40)
$Rechner[18] = GUICtrlCreateButton(")",80,210,60,40)
$Rechner[19] = GUICtrlCreateButton("Sqrt",150,210,60,40)
$Rechner[20] = GUICtrlCreateButton("Sqrt³",220,210,60,40)
$Rechner[21] = GUICtrlCreateButton("4",300,210,60,40)
$Rechner[22] = GUICtrlCreateButton("5",370,210,60,40)
$Rechner[23] = GUICtrlCreateButton("6",440,210,60,40)
$Rechner[24] = GUICtrlCreateButton("+",510,210,60,40)
$Rechner[25] = GUICtrlCreateButton("x²",10,265,60,40)
$Rechner[26] = GUICtrlCreateButton("x³",80,265,60,40)
$Rechner[27] = GUICtrlCreateButton("xª",150,265,60,40)
$Rechner[28] = GUICtrlCreateButton("Pi",220,265,60,40)
$Rechner[29] = GUICtrlCreateButton("1",300,265,60,40)
$Rechner[30] = GUICtrlCreateButton("2",370,265,60,40)
$Rechner[31] = GUICtrlCreateButton("3",440,265,60,40)
$Rechner[32] = GUICtrlCreateButton("=",510,265,60,95)
$Rechner[33] = GUICtrlCreateButton("Sin",10,320,60,40)
$Rechner[34] = GUICtrlCreateButton("Cos",80,320,60,40)
$Rechner[35] = GUICtrlCreateButton("Tan",150,320,60,40)
$Rechner[36] = GUICtrlCreateButton("Ans",220,320,60,40)
$Rechner[37] = GUICtrlCreateButton("0",300,320,130,40)
$Rechner[38] = GUICtrlCreateButton(",",440,320,60,40)
For $i=1 To 38 Step 1
GUICtrlSetFont($Rechner[$i],20,800)
Next
#EndRegion ; <== Taschenrechner-Controls
#Region Waehrungsrechner-Controls
$umrechnung[9] = GUICtrlCreateInput("",10,40,50,20)
$umrechnung[4] = GUICtrlCreateLabel("in EUR",290,40,40)
GUICtrlSetColor($umrechnung[3],0xFFFFAA)
GUICtrlSetColor($umrechnung[4],0xFFFFAA)
$umrechnung[5] = GUICtrlCreateButton("Berechnen",340,40,100,20)
$umrechnung[1] = GUICtrlCreateCombo("", 80, 40, 200, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData($umrechnung[1], "US-Dollar")
GUICtrlSetData($umrechnung[1], "Englische Pfund")
GUICtrlSetData($umrechnung[1], "Schweizer Franken")
GUICtrlSetData($umrechnung[1], "Japanische Yen")
GUICtrlSetData($umrechnung[1], "Russischer Rubel")
GUICtrlSetData($umrechnung[1], "Indische Rupie")
GUICtrlSetData($umrechnung[1], "Polnischer Zloty")
GUICtrlSetData($umrechnung[1], "Tschechische Krone")
GUICtrlSetData($umrechnung[1], "Dänische Krone")
GUICtrlSetData($umrechnung[1], "Kanadischer Dollar")
GUICtrlSetData($umrechnung[1], "Neuseel. Dollar")
GUICtrlSetData($umrechnung[1], "Australischer Dollar")
GUICtrlSetData($umrechnung[1], "Ägyptisches Pfund")
GUICtrlSetData($umrechnung[1], "Slowakische Krone")
GUICtrlSetData($umrechnung[1], "Chinesischer Renmimbi")
$umrechnung[8] = GUICtrlCreateInput("",10,75,50,20)
$umrechnung[6] = GUICtrlCreateLabel(" EUR in ",70,75,60,20)
GUICtrlSetColor($umrechnung[6],0xFFFFAA)
$umrechnung[7] = GUICtrlCreateButton("Berechnen",340,75,100,20)
$umrechnung[2] = GUICtrlCreateCombo("", 120, 75, 200, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData($umrechnung[2], "US-Dollar")
GUICtrlSetData($umrechnung[2], "Englische Pfund")
GUICtrlSetData($umrechnung[2], "Schweizer Franken")
GUICtrlSetData($umrechnung[2], "Japanische Yen")
GUICtrlSetData($umrechnung[2], "Russischer Rubel")
GUICtrlSetData($umrechnung[2], "Indische Rupie")
GUICtrlSetData($umrechnung[2], "Polnischer Zloty")
GUICtrlSetData($umrechnung[2], "Tschechische Krone")
GUICtrlSetData($umrechnung[2], "Dänische Krone")
GUICtrlSetData($umrechnung[2], "Kanadischer Dollar")
GUICtrlSetData($umrechnung[2], "Neuseel. Dollar")
GUICtrlSetData($umrechnung[2], "Australischer Dollar")
GUICtrlSetData($umrechnung[2], "Ägyptisches Pfund")
GUICtrlSetData($umrechnung[2], "Slowakische Krone")
GUICtrlSetData($umrechnung[2], "Chinesischer Renmimbi")
For $i=1 To 9 Step 1
GUICtrlSetState($umrechnung[$i],$GUI_HIDE)
Next
#EndRegion ; <== Waehrungsrechner-Controls
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
$inputRead1 = GUICtrlRead($input)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $bClose
Exit
Case $bMinimize
GUISetState(@SW_MINIMIZE)
Case $bRechner
For $i=1 To 38 Step 1
GUICtrlSetState($Rechner[$i],$GUI_SHOW)
Next
GUICtrlSetState($input,$GUI_SHOW)
For $i=1 To 5 Step 1
GUICtrlSetState($Label[$i],$GUI_SHOW)
Next
For $i=1 To 9 Step 1
GUICtrlSetState($umrechnung[$i],$GUI_HIDE)
Next
Case $bWaehrung
For $i=1 To 38 Step 1
GUICtrlSetState($Rechner[$i],$GUI_HIDE)
Next
GUICtrlSetState($input,$GUI_HIDE)
For $i=1 To 5 Step 1
GUICtrlSetState($Label[$i],$GUI_HIDE)
Next
For $i=1 To 9 Step 1
GUICtrlSetState($umrechnung[$i],$GUI_SHOW)
Next
Case $bGTR
GTR()
Case $Rechner[3] ;Rechner Funktionen###
_setdata("ASin(")
Case $Rechner[4]
_setdata("ACos(")
Case $Rechner[5]
GUICtrlSetData($input,"")
Case $Rechner[6]
GUICtrlSetData($input,"-"&$inputRead1)
Case $Rechner[8]
_setdata("*")
Case $Rechner[7]
_setdata("/")
Case $Rechner[11]
_setdata("ATan(")
Case $Rechner[12]
$zwischenvar = Execute(GUICtrlRead($input)/100)
GUICtrlSetData($input,$zwischenvar)
Case $Rechner[13]
_setdata("7")
Case $Rechner[14]
_setdata("8")
Case $Rechner[15]
_setdata("9")
Case $Rechner[16]
_setdata("-")
Case $Rechner[17]
_setdata("(")
Case $Rechner[18]
_setdata(")")
Case $Rechner[19]
_setdata("sqrt(")
Case $Rechner[20]
_setdata(" ^ (1/3)")
Case $Rechner[21]
_setdata("4")
Case $Rechner[22]
_setdata("5")
Case $Rechner[23]
_setdata("6")
Case $Rechner[24]
_setdata("+")
Case $Rechner[25]
_setdata("^2")
Case $Rechner[26]
_setdata("^3")
Case $Rechner[27]
_setdata(" ^ ")
Case $Rechner[28]
_setdata("3,1416")
Case $Rechner[29]
_setdata("1")
Case $Rechner[30]
_setdata("2")
Case $Rechner[31]
_setdata("3")
Case $Rechner[32]
_rechnen()
Case $Rechner[33]
_setdata("sin(")
Case $Rechner[34]
_setdata("Cos(")
Case $Rechner[35]
_setdata("Tan(")
Case $Rechner[36]
_setdata($speichervar)
Case $Rechner[37]
_setdata("0")
Case $Rechner[38]
_setdata(".") ;<== Rechner Funktionen###
Case $umrechnung[5] ;Umrechner Funktionen###
_umrechnenin()
Case $umrechnung[7]
_umrechnenaus() ;<== Umrechner Funktionen###
EndSwitch
WEnd
Func _rechnen()
$output = Execute(GUICtrlRead($input))
$speichervar = $output
GUICtrlSetData($input,"="&$output)
EndFunc
Func _setdata($data1)
GUICtrlSetData($input,$inputRead1&$data1)
EndFunc
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nNotifyCode, $nID
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0x0000FFFF)
Switch $nID
Case $input
Switch $nNotifyCode
Case $EN_SETFOCUS
GUICtrlSendMsg($input, $EM_SETSEL, 0, -1)
GUICtrlSetState($input, $GUI_FOCUS)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc
Func _umrechnenin() ;in EURO umrechnen
$ReadVarIn1 = GUICtrlRead($umrechnung[1])
$ReadVarIn2 = GUICtrlRead($umrechnung[9])
Switch $ReadVarIn1
Case "US-Dollar"
MsgBox(0,"US-Dollar in EURO",$ReadVarIn2&"$ sind "&($ReadVarIn2*0.736)&"€")
Case "Englische Pfund"
MsgBox(0,"Englische Pfund in EURO",$ReadVarIn2&"Pfund sind "&($ReadVarIn2*1.187)&"€")
Case "Schweizer Franken"
MsgBox(0,"Schweizer Franken in EURO",$ReadVarIn2&"Franken sind "&($ReadVarIn2*0.77)&"€")
Case "Japanische Yen"
MsgBox(0,"Japanische Yen in EURO",$ReadVarIn2&"Yen sind "&($ReadVarIn2*0.009)&"€")
Case "Russischer Rubel"
MsgBox(0,"Russischer Rubel in EURO",$ReadVarIn2&"Rubel sind "&($ReadVarIn2*0.025)&"€")
Case "Indische Rupie"
MsgBox(0,"Indische Rupie in EURO",$ReadVarIn2&"Rupien sind "&($ReadVarIn2*0.016)&"€")
Case "Polnischer Zloty"
MsgBox(0,"Polnischer Zloty in EURO",$ReadVarIn2&"Zloty sind "&($ReadVarIn2*0.256)&"€")
Case "Tschechische Krone"
MsgBox(0,"Tschechische Krone in EURO",$ReadVarIn2&"Kronen sind "&($ReadVarIn2*0.041)&"€")
Case "Dänische Krone"
MsgBox(0,"Dänische Krone in EURO",$ReadVarIn2&"Kronen sind "&($ReadVarIn2*0.134)&"€")
Case "Kanadischer Dollar"
MsgBox(0,"Kanadischer Dollar in EURO",$ReadVarIn2&"$ sind "&($ReadVarIn2*0.747)&"€")
Case "Neuseel. Dollar"
MsgBox(0,"Neuseel. Dollar in EURO",$ReadVarIn2&"$ sind "&($ReadVarIn2*0.559)&"€")
Case "Australischer Dollar"
MsgBox(0,"Australischer Dollar in EURO",$ReadVarIn2&"$ sind "&($ReadVarIn2*0.742)&"€")
Case "Ägyptisches Pfund"
MsgBox(0,"Ägyptisches Pfund in EURO",$ReadVarIn2&"Pfund sind "&($ReadVarIn2*0.126)&"€")
Case "Slowakische Krone"
MsgBox(0,"Slowakische Krone in EURO",$ReadVarIn2&"Kronen sind "&($ReadVarIn2*0.033)&"€")
Case "Chinesischer Renmimbi"
MsgBox(0,"Chinesischer Renimbi in EURO",$ReadVarIn2&"Renmimbi sind "&($ReadVarIn2*0.112)&"€")
EndSwitch
EndFunc
Func _umrechnenaus() ;aus EURO umrechnen
$ReadVarAus1 = GUICtrlRead($umrechnung[2])
$ReadVarAus2 = GUICtrlRead($umrechnung[8])
Switch $ReadVarAus1
Case "US-Dollar"
MsgBox(0,"EURO in US-Dollar",$ReadVarAus2&"€ sind "&($ReadVarAus2*1.358)&"$")
Case "Englische Pfund"
MsgBox(0,"EURO in Englische Pfund",$ReadVarAus2&"€ sind "&($ReadVarAus2*0.842)&"Pfund")
Case "Schweizer Franken"
MsgBox(0,"EURO in Schweizer Franken",$ReadVarAus2&"€ sind "&($ReadVarAus2*1.298)&"Franken")
Case "Japanische Yen"
MsgBox(0,"EURO in Japanische Yen",$ReadVarAus2&"€ sind "&($ReadVarAus2*113.404)&"Yen")
Case "Russischer Rubel"
MsgBox(0,"EURO in Russischer Rubel",$ReadVarAus2&"€ sind "&($ReadVarAus2*39.766)&"Rubel")
Case "Indische Rupie"
MsgBox(0,"EURO in Indische Rupie",$ReadVarAus2&"€ sind "&($ReadVarAus2*61.522)&"Rupien")
Case "Polnischer Zloty"
MsgBox(0,"EURO in Polnischer Zloty",$ReadVarAus2&"€ sind "&($ReadVarAus2*3.904)&"Zloty")
Case "Tschechische Krone"
MsgBox(0,"EURO in Tschechische Krone",$ReadVarAus2&"€ sind "&($ReadVarAus2*24.377)&"Kronen")
Case "Dänische Krone"
MsgBox(0,"EURO in Dänische Krone",$ReadVarAus2&"€ sind "&($ReadVarAus2*7.454)&"Kronen")
Case "Kanadischer Dollar"
MsgBox(0,"EURO in Kanadischer Dollar",$ReadVarAus2&"€ sind "&($ReadVarAus2*1.34)&"$")
Case "Neuseel. Dollar"
MsgBox(0,"EURO in Neuseel. Dollar",$ReadVarAus2&"€ sind "&($ReadVarAus2*1.789)&"$")
Case "Australischer Dollar"
MsgBox(0,"EURO in Australischer Dollar",$ReadVarAus2&"€ sind "&($ReadVarAus2*1.348)&"$")
Case "Ägyptisches Pfund"
MsgBox(0,"EURO in Ägyptisches Pfund",$ReadVarAus2&"€ sind "&($ReadVarAus2*7.933)&"Pfund")
Case "Slowakische Krone"
MsgBox(0,"EURO in Slowakische Krone",$ReadVarAus2&"€ sind "&($ReadVarAus2*30.126)&"Kronen")
Case "Chinesischer Renmimbi"
MsgBox(0,"EURO in Chinesischer Renmimbi",$ReadVarAus2&"€ sind "&($ReadVarAus2*8.926)&"Renmimbi")
EndSwitch
EndFunc
#cs *************************************************
***alles ab hier kommt von Stayawayknight, Danke;)***
#ce**************************************************
Func GTR()
GUIDelete($Taschenrechner)
;###User Options Start
$sCoordfarbe = "0xFF800000" ;Gitterfarbe in ARGB
$sGridColor = "0xFF99FFFF" ;Koordinatensystemfarbe in ARGB
$sBackgroundcolor = "0x000000" ;Hintergrundfarbe in RGB
$sXColor = "0xFFFFFFFF" ;Farbe der X, die beim Klicken erscheinen in ARGB
$iLineWidth = 6 ;Graphenlinienbreite
;###User Options Ende
;###Options Start
Opt("GuiOnEventMode", 1)
HotKeySet("{ESC}", "ende")
OnAutoItExitRegister("ende")
$iNullx = Round((@DesktopWidth - 200) / 2)
$iNully = Round((@DesktopHeight - 200) / 2)
$sTitle = "Funktionsgraph"
$sTitle2 = "Einstellungsmenü"
$bDrawed = False
;###Options Ende
;###Gui Start
$hGui = GUICreate($sTitle, @DesktopWidth - 200, @DesktopHeight - 200, 100, 100)
GUISetBkColor($sBackgroundcolor, $hGui)
GUISetState(@SW_SHOW, $hGui)
;Neue Gui:
$hSettings = GUICreate($sTitle2, 350, 280, @DesktopWidth - 360, @DesktopHeight - 310, BitOR($WS_CAPTION, $WS_GROUP), $WS_EX_TOPMOST, $hGui)
GUISetBkColor(0xFFFFFF, $hSettings)
$cMousePos = GUICtrlCreateLabel("MousePos:", 0, 0, 300, 20)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")
$cCGrid = GUICtrlCreateCheckbox("Grid", 0, 25, 50, 20)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")
GUICtrlSetState(-1, $GUI_CHECKED)
$cCUnitCircle = GUICtrlCreateCheckbox("Unit Circle", 52, 25, 85, 20)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")
$cCScale = GUICtrlCreateCheckbox("Scale", 140, 25, 60, 20)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateButton("Generate", 202, 25, 80, 20)
GUICtrlSetOnEvent(-1, "generate")
GUICtrlCreateButton("Add function", 0, 60, 90, 20)
GUICtrlSetOnEvent(-1, "addfunc")
GUICtrlCreateButton("Delete function", 95, 60, 100, 20)
GUICtrlSetOnEvent(-1, "deletefunc")
GUICtrlCreateButton("Quit", 200, 60, 100, 20)
GUICtrlSetOnEvent(-1, "ende")
$cObjektlist = GUICtrlCreateListView("Objekttyp |Wert |Farbe ", 0, 82, 300, 140)
$cZoom = GUICtrlCreateSlider(310, 55, 25, 165, $TBS_VERT)
GUICtrlSetLimit(-1, 200, 1)
GUICtrlSetData($cZoom, 20)
$cZoomlabel = GUICtrlCreateLabel("Zoom:" & @CRLF & GUICtrlRead($cZoom), 296, 0, 40, 60)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")
For $i = 10 To 200 Step 10
_GUICtrlSlider_SetTic($cZoom, $i)
Next
$cButtonBk = GUICtrlCreateButton("Background", 0, 230, 60, 20)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $sBackgroundcolor)
GUICtrlSetOnEvent(-1, "setbk")
$cButtonSystem = GUICtrlCreateButton("System", 65, 230, 40, 20)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, StringReplace($sCoordfarbe, "0xFF", "0x"))
GUICtrlSetOnEvent(-1, "setsystem")
$cButtonGrid = GUICtrlCreateButton("Grid", 110, 230, 30, 20)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, StringReplace($sGridColor, "0xFF", "0x"))
GUICtrlSetOnEvent(-1, "setgrid")
$cButtonMark = GUICtrlCreateButton("Mark", 145, 230, 30, 20)
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, StringReplace($sXColor, "0xFF", "0x"))
GUICtrlSetOnEvent(-1, "setmark")
ControlFocus($sTitle2, "", $cObjektlist)
GUISetState(@SW_SHOW, $hSettings)
;###Gui Ende
;###GDIPlus Start
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
$Pen2 = _GDIPlus_PenCreate($sGridColor, 1)
$Pen1 = _GDIPlus_PenCreate($sCoordfarbe, 1)
$Pen3 = _GDIPlus_PenCreate($sXColor, 1)
$Brush1 = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
;###GDIPlus Ende
While 1
$aPos = GUIGetCursorInfo($hGui)
$iZoom = GUICtrlRead($cZoom) ;Zoom
$iAbstand = Round((@DesktopHeight-200) / $iZoom)
GUICtrlSetData($cMousePos, "Mousepos: (" & Round(($aPos[0] - $iNullx) / $iAbstand, 2) & "|" & Round(calcytocoords($aPos[1]) / $iAbstand, 2) & ")")
If _IsPressed(01) Then
drawX()
Do
Until Not _IsPressed(01)
EndIf
GUICtrlSetData($cZoomlabel, "Zoom:" & @CRLF & GUICtrlRead($cZoom))
Sleep(100)
WEnd
ende()
EndFunc
Func generate()
GUISetBkColor($sBackgroundcolor, $hGui)
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
If GUICtrlRead($cCGrid) = $GUI_CHECKED Then
$bGrid = True
Else
$bGrid = False
EndIf
If GUICtrlRead($cCScale) = $GUI_CHECKED Then
$bScale = True
Else
$bScale = False
EndIf
If GUICtrlRead($cCUnitCircle) = $GUI_CHECKED Then
$bEinheitskreis = True
Else
$bEinheitskreis = False
EndIf
;###Netz erstellen Start
For $i = 1 To (@DesktopWidth - 200) / $iAbstand ;Beschriftung
If $bGrid = True Then
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx + $iAbstand * $i, 0, $iNullx + $iAbstand * $i, (@DesktopHeight - 200), $Pen2) ;x rechts
_GDIPlus_GraphicsDrawLine($hGraphics, 0, $iNully - $iAbstand * $i, (@DesktopWidth - 200), $iNully - $iAbstand * $i, $Pen2);y oben
_GDIPlus_GraphicsDrawLine($hGraphics, 0, $iNully + $iAbstand * $i, (@DesktopWidth - 200), $iNully + $iAbstand * $i, $Pen2);y unten
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx - $iAbstand * $i, 0, $iNullx - $iAbstand * $i, (@DesktopWidth - 200), $Pen2);x links
EndIf
If $bScale = True Then
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx + $iAbstand * $i, $iNully - 10, $iNullx + $iAbstand * $i, $iNully + 10, $Pen1) ;x rechts
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx - 10, $iNully - $iAbstand * $i, $iNullx + 10, $iNully - $iAbstand * $i, $Pen1);y oben
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx - 10, $iNully + $iAbstand * $i, $iNullx + 10, $iNully + $iAbstand * $i, $Pen1);y unten
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx - $iAbstand * $i, $iNully - 10, $iNullx - $iAbstand * $i, $iNully + 10, $Pen1);x links
EndIf
Next
_GDIPlus_GraphicsDrawLine($hGraphics, 0, $iNully, (@DesktopWidth - 200), $iNully, $Pen1) ;x-Achse
_GDIPlus_GraphicsDrawLine($hGraphics, $iNullx, 0, $iNullx, (@DesktopHeight - 200), $Pen1);y-Achse
If $bEinheitskreis = True Then
_GDIPlus_GraphicsDrawEllipse($hGraphics, $iNullx - ($iAbstand * 1), $iNully - ($iAbstand * 1), $iAbstand * 2, $iAbstand * 2, $Pen1)
EndIf
GUISetState(@SW_DISABLE, $hSettings)
Sleep(1000)
;###Netz erstellen Ende
For $i = 0 To _GUICtrlListView_GetItemCount($cObjektlist) - 1
Local $sY = _GUICtrlListView_GetItemTextString($cObjektlist, $i)
Local $aSplitted = StringSplit($sY, "|")
If $aSplitted[1] = "Function" Then
draw($aSplitted[2], $aSplitted[3])
Else
Local $aSplitted2 = StringSplit($aSplitted[2], "/")
$aSplitted2[1] = StringReplace($aSplitted2[1], "(", "")
$aSplitted2[2] = StringReplace($aSplitted2[2], ")", "")
drawX(Round(($aSplitted2[1] * $iAbstand) + $iNullx), Round((($aSplitted2[2] * (-1)) * $iAbstand) + $iNully))
EndIf
Next
GUISetState(@SW_ENABLE, $hSettings)
ToolTip("Done!")
Sleep(2000)
ToolTip("")
EndFunc ;==>generate
Func draw($sFunktion, $sColor)
Local $Brush1 = _GDIPlus_BrushCreateSolid($sColor)
$sFunktion = StringReplace($sFunktion, "x", "($i / $iAbstand)")
ToolTip(StringReplace(StringReplace($sFunktion, "$i", "x"), " / xAbstand", ""))
Sleep(2000)
For $i = -((@DesktopWidth - 200) / 2) To (@DesktopWidth -200) / 2
ToolTip("i = " & $i & "; X = " & Round(Calcxtocoords($i)) & "; Y = " & Round(calcytocoords(Execute($sFunktion))) & "; Funktionswert = " & Execute($sFunktion))
_GDIPlus_GraphicsFillEllipse($hGraphics, Round(Calcxtocoords($i) - ($iLineWidth / 2)), Round(calcytocoords(Execute($sFunktion) * ($iAbstand)) - ($iLineWidth / 2)), $iLineWidth, $iLineWidth, $Brush1)
Next
$bDrawed = True
EndFunc ;==>draw
Func drawX($iMousePosx = -1, $iMousePosy = -1)
If $bDrawed = False Then Return
If $iMousePosx = -1 And $iMousePosy = -1 Then
If WinGetState($sTitle2, "") = 8 Then Return
If _MousePosCheck() = 1 Then Return
Local $aPos = GUIGetCursorInfo($hGui)
$iMousePosx = $aPos[0]
$iMousePosy = $aPos[1]
_GDIPlus_GraphicsDrawLine($hGraphics, $aPos[0] - 7, $aPos[1] - 7, $aPos[0] + 7, $aPos[1] + 7, $Pen3)
_GDIPlus_GraphicsDrawLine($hGraphics, $aPos[0] + 7, $aPos[1] - 7, $aPos[0] - 7, $aPos[1] + 7, $Pen3)
GUICtrlCreateListViewItem("Mark|(" & Round(($aPos[0] - $iNullx) / $iAbstand, 2) & "/" & Round(calcytocoords($aPos[1]) / $iAbstand, 2) & ")|" & $sXColor, $cObjektlist)
Else
_GDIPlus_GraphicsDrawLine($hGraphics, $iMousePosx - 7, $iMousePosy - 7, $iMousePosx + 7, $iMousePosy + 7, $Pen3)
_GDIPlus_GraphicsDrawLine($hGraphics, $iMousePosx + 7, $iMousePosy - 7, $iMousePosx - 7, $iMousePosy + 7, $Pen3)
EndIf
EndFunc ;==>drawX
Func addfunc()
$bDrawed = False
Do
Local $sInputFunktion = InputBox("Function", "Enter a function, please!" & @CRLF & "Use x for the variable!" & @CRLF & "Y=", Default, Default, Default, Default, Default, Default, $hGui)
Until $sInputFunktion <> "" Or @error
If @error Then Return
Do
Local $sColor = _ChooseColor(2, 0x990000, Default, $hGui)
Until $sColor <> -1 Or @error
If @error Then Return
Local $sColor2 = StringReplace($sColor, "0x", "0xFF")
GUICtrlSetBkColor(GUICtrlCreateListViewItem("Function|" & $sInputFunktion & "|" & $sColor2, $cObjektlist), $sColor)
EndFunc ;==>addfunc
Func _MousePosCheck()
Local $aPos = WinGetPos($sTitle2)
$x_check = $aPos[0]
$y_check = $aPos[1]
$x_size = $aPos[2]
$y_size = $aPos[3]
If MouseGetPos(0) >= $x_check And MouseGetPos(0) <= $x_check + $x_size And MouseGetPos(1) >= $y_check And MouseGetPos(1) <= $y_check + $y_size Then
Return (1)
Else
Return (0)
EndIf
EndFunc ;==>_MousePosCheck
Func deletefunc()
_GUICtrlListView_DeleteItemsSelected($cObjektlist)
EndFunc ;==>deletefunc
Func setbk()
$sBackgroundcolor = _ChooseColor(2, 0x000000)
GUICtrlSetBkColor($cButtonBk, $sBackgroundcolor)
EndFunc ;==>setbk
Func setmark()
$sXColor = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
GUICtrlSetBkColor($cButtonMark, $sXColor)
EndFunc ;==>setmark
Func setgrid()
$sGridColor = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
GUICtrlSetBkColor($cButtonGrid, $sGridColor)
EndFunc ;==>setgrid
Func setsystem()
$sCoordfarbe = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
GUICtrlSetBkColor($cButtonSystem, $sCoordfarbe)
EndFunc ;==>setsystem
Func calcxtocoords($iX)
Return $iX + $iNullx
EndFunc ;==>calcxtocoords
Func calcytocoords($iY)
Return (-$iY + $iNully)
EndFunc ;==>calcytocoords
Func ende()
_GDIPlus_PenDispose($Pen1)
_GDIPlus_PenDispose($Pen2)
_GDIPlus_PenDispose($Pen3)
_GDIPlus_BrushDispose($Brush1)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>ende