GTR - (jetzt aber) Graphischer Taschenrechner

  • 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
    [autoit]

    #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

    [/autoit] [autoit][/autoit] [autoit]

    ;###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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    Func deletefunc()
    _GUICtrlListView_DeleteItemsSelected($cObjektlist)
    EndFunc ;==>deletefunc

    [/autoit] [autoit][/autoit] [autoit]

    Func setbk()
    $sBackgroundcolor = _ChooseColor(2, 0x000000)
    GUICtrlSetBkColor($cButtonBk, $sBackgroundcolor)
    EndFunc ;==>setbk

    [/autoit] [autoit][/autoit] [autoit]

    Func setmark()
    $sXColor = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
    GUICtrlSetBkColor($cButtonMark, $sXColor)
    EndFunc ;==>setmark

    [/autoit] [autoit][/autoit] [autoit]

    Func setgrid()
    $sGridColor = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
    GUICtrlSetBkColor($cButtonGrid, $sGridColor)
    EndFunc ;==>setgrid

    [/autoit] [autoit][/autoit] [autoit]

    Func setsystem()
    $sCoordfarbe = StringReplace(_ChooseColor(2, 0x000000), "0x", "0xFF")
    GUICtrlSetBkColor($cButtonSystem, $sCoordfarbe)
    EndFunc ;==>setsystem

    [/autoit] [autoit][/autoit] [autoit]

    Func calcxtocoords($iX)
    Return $iX + $iNullx
    EndFunc ;==>calcxtocoords

    [/autoit] [autoit][/autoit] [autoit]

    Func calcytocoords($iY)
    Return (-$iY + $iNully)
    EndFunc ;==>calcytocoords

    [/autoit] [autoit][/autoit] [autoit]

    Func ende()
    _GDIPlus_PenDispose($Pen1)
    _GDIPlus_PenDispose($Pen2)
    _GDIPlus_PenDispose($Pen3)
    _GDIPlus_BrushDispose($Brush1)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>ende

    [/autoit]
  • [autoit]

    $source = _INetGetSource("http://www.waehrungskurs.de/content/kurse/index.php")
    $string = _StringBetween($source, '<td class="col2">', '</td>')
    $string2 = _StringBetween($source, '<td class="col3">', '</td>')
    For $i = 1 To UBound($string2) - 1
    StringReplace(StringReplace($string2[$i], ".", ""), ",", ".")
    IniWrite(@ScriptDir & "\data.ini", "Währungskurse", $string[$i], $string2[$i])

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit]


    Aus meinem Skript ;)

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Ineluki: du hast recht... offensichtlich darf x nur einmal vorkommen. das ist mir gar nicht aufgefallen frag das mal stayawayknight bei seinem skript klappt das auch nicht

    @twodollarbillie: ich wollte gerne einen TR machen der einfach eine datei ist und fertig, darum hab ich auch keine bilder mit reingenommen

  • Hi erstmal,

    Ineluki: du hast recht... offensichtlich darf x nur einmal vorkommen. das ist mir gar nicht aufgefallen frag das mal stayawayknight bei seinem skript klappt das auch nicht


    das liegt daran, das 4x nicht als "4*x" erkannt wird. X darf ruhig mehrmals vorkommen, nur mit *-Zeichen dazwischen.
    Man müsste da was mit RegEx machen, was nicht gerade meine Stärke ist.
    Versuch mich grad mal dran.

  • Sieht schick aus!
    Mir ist aufgefallen:
    man kann ja sachen wie "guidelete()" in den Taschenrechner schreiben, und wenn man dann "=" drückt, ist die Gui gelöscht Ôo :D
    ausserdem ist das bei der GTR funktion mit den einzelnen Punkten ein bisschen merkwürdig, könnte man keine ganze Linie zwischen den Punkten zeichnen?

    Aber ansonsten schön gemacht..

    MfG,
    Fresapore