Custom Poti & Switch

  • Hab mal versucht,die GUI-Elemente Slider und Checkbox im "HiFi"-style neu aufleben zu lassen,ist noch nicht ausgereift,auch die Optik ist noch mau,aber ich hoffe,ihr ahnt mein Ziel.deswegen Anregungen und Kritik erwünscht.Mein Endziel ist eine incluidable UDF--->>>>wie schreibt man sowas???

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #Include <Misc.au3>
    HotKeySet("{ESC}", "Ende")
    Global $klickerrechts [5][2]=[[4,0],[400,20],[428,12],[430,21],[400,24]]
    Global $klickerlinks [5][2]=[[4,0],[400,20],[372,12],[370,21],[400,24]]
    Global $switch=0,$angle=0,$angledif

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

    #region
    $Form2 = GUICreate("2", 800, 50, -1, -1, $WS_POPUP, -1)
    GUISetBkColor(0xFFFFFF)
    Global $exitbutton = GUICtrlCreateButton("", 750, 10, 40, 30)
    $colorslider1 = GUICtrlCreateSlider(10,10,80,30,$TBS_NOTICKS)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetLimit(-1, 255)
    $colorslider2=GUICtrlCreateSlider(100,10,80,30,$TBS_NOTICKS)
    GUICtrlSetBkColor(-1,0xFFFFFF)
    GUICtrlSetLimit(-1, 250,0)
    $colorslider3=GUICtrlCreateSlider(190,10,80,30,$TBS_NOTICKS)
    GUICtrlSetBkColor(-1,0xFFFFFF)
    GUICtrlSetLimit(-1, 250,0)
    Global $BU=GUICtrlCreateLabel("",355,3,92,40)
    Global $BU1=GUICtrlCreateLabel("",495,16,25,25)
    GUISetState()
    #endregion

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

    _GDIPlus_Startup()
    Global $grafik [6]=[ _GDIPlus_GraphicsCreateFromHWND($Form2),_GDIPlus_BrushCreateSolid(0xFFffffff),_GDIPlus_BrushCreateSolid(0xff000000),_GDIPlus_PenCreate(0xff000000, 1, 1),_GDIPlus_PenCreate(0xFFffffff, 1, 2),_GDIPlus_PenCreate(0xff000000, 3)]
    _GDIPlus_GraphicsSetSmoothingMode($grafik[0], 1)
    _GDIPlus_GraphicsDrawEllipse($grafik[0], 495, 15, 30,30,$grafik[5])
    _GDIPlus_GraphicsdrawPie($grafik[0], 498, 18, 24,24,$angle,25,$grafik[3])
    switchklicker()

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

    While 1
    Sleep(1)
    $msg=GUIGetMsg()
    Switch $msg
    case $BU
    switchklicker()
    case $BU1
    poti()
    EndSwitch
    WEnd

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

    func poti()
    $maus1=MouseGetPos()
    $x=$maus1[0]
    while _IsPressed(01)=True
    $maus=MouseGetPos()
    if $maus[0]<$x then
    $angledif=2
    _GDIPlus_GraphicsdrawPie($grafik[0], 498, 18, 24,24,$angle-5,25,$grafik[4])
    _GDIPlus_GraphicsdrawPie($grafik[0], 498, 18, 24,24,$angle,25,$grafik[3])
    sleep(1)
    else
    $angledif=-2
    _GDIPlus_GraphicsdrawPie($grafik[0], 498, 18, 24,24,$angle+5,25,$grafik[4])
    _GDIPlus_GraphicsdrawPie($grafik[0], 498, 18, 24,24,$angle,25,$grafik[3])
    sleep(1)
    EndIf
    GUICtrlSetData($exitbutton,"°="&$angle)
    $angle=$angle+$angledif
    if $angle<-360 then $angle=0
    if $angle>360 then $angle=0
    WEnd
    EndFunc

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

    Func switchklicker()
    GUICtrlSetState($BU,$GUI_SHOW)
    if $switch=1 Then
    Local $rechts [4]=[_GDIPlus_GraphicsFillPolygon($grafik[0], $klickerrechts, $grafik[1]),_GDIPlus_GraphicsFillPolygon($grafik[0], $klickerlinks, $grafik[2]),_GDIPlus_GraphicsdrawEllipse($grafik[0], 429, 7, 16,16,$grafik[4]),_GDIPlus_GraphicsdrawEllipse($grafik[0], 355, 7, 16,16, $grafik[3])]
    $switch=0
    Else
    Local $links [4]=[_GDIPlus_GraphicsFillPolygon($grafik[0], $klickerlinks, $grafik[1]),_GDIPlus_GraphicsFillPolygon($grafik[0], $klickerrechts, $grafik[2]),_GDIPlus_GraphicsdrawEllipse($grafik[0], 355, 7, 16,16,$grafik[4]),_GDIPlus_GraphicsdrawEllipse($grafik[0], 429, 7, 16,16, $grafik[3])]
    $switch=1
    EndIf
    _GDIPlus_GraphicsDrawEllipse($grafik[0], 395, 17,10,10, $grafik[3])
    GUICtrlSetData($exitbutton,$switch)
    EndFunc

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

    Func Ende()
    _GDIPlus_GraphicsDispose($grafik[0])
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>ende

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Der "Poti" ist eine sehr schöne Idee!
    Was hälst du davon den aktuellen "Füllgrad" als "Tortenstück" im inneren des Potis darzustellen (grün/gelb/rot je nach Füllgrad)