Tacho/Uhr - Analogzeiger

  • Guten Abend zusammen,

    jetzt nach dem Fitness habe ich noch eine Frage an euch. Wie schaffe ich es eine Art Tacho oder ähnliches zu schreiben? Ich wüsste gar nicht, wie ich da anfangen soll. Kann mir da jemand ein Beispiel erstellen? Wäre euch sehr dankbar.

    Mit freundlichen Grüßen

    MehmeX

  • oder halt etwas komplizierter du errechnest dir die positionen des zeigers abhängig von den werten die du anzeigen möchtest und machst dir für jeden wert ein bild mit der passenden zeiger position und ersetzt sie halt stets.

    Also etwas umständlicheres habe ich ja noch nie gehört.

    Das wären dann also 216.000 Einzellbilder, wenn auch der Sekundenzeiger angzeigt werden soll.

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Oder, fals du wie ich, keine Ahnung von Vektoren, Sinus etc hast, kannst du es auch mit _GDIPLus_GraphicsFillElipse schaffen und mit Winkeln rechnen ;)

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Ich hab vor einiger Zeit mal eine einfache Analoguhr mit GDI+ gebastelt.

    Spoiler anzeigen
    [autoit]

    #include <GDIP.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $iGUIColorBG = 0xFFFFFFFF
    $iGUIWidth = 400
    $iGUIHeight = 400

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

    $hWnd = GUICreate("Test", $iGUIWidth, $iGUIHeight)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)

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

    $hPenHour = _GDIPlus_PenCreate(0xFF000000, 4)
    $hPenMin = _GDIPlus_PenCreate(0xFF000000, 2)
    $hPenSec = _GDIPlus_PenCreate(0xFFFF0000, 1)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    While Sleep(20)
    _GDIPlus_GraphicsClear($hBuffer, $iGUIColorBG)
    _GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -170, @SEC * 6, $hPenSec)
    _GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -190, @MIN * 6, $hPenMin)
    _GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -140, @HOUR * 30, $hPenHour)
    _GDIPlus_GraphicsFillEllipse($hBuffer, $iGUIWidth / 2 - 10, $iGUIHeight / 2 - 10, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)
    WEnd

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_PenDispose($hPenHour)
    _GDIPlus_PenDispose($hPenSec)
    _GDIPlus_PenDispose($hPenMin)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

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

    Func _GDIPlus_GraphicsDrawLineWithAngle($hGraphics, $iX_Rotate, $iY_Rotate, $iX_Point1, $iY_Point1, $iX_Point2, $iY_Point2, $iAngle, $hPen = 0)
    _GDIPlus_GraphicsTranslateTransform($hGraphics, $iX_Rotate, $iY_Rotate)
    _GDIPlus_GraphicsRotateTransform($hGraphics, $iAngle)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX_Point1, $iY_Point1, $iX_Point2, $iY_Point2, $hPen)
    _GDIPlus_GraphicsResetTransform($hGraphics)
    EndFunc ;==>_GDIPlus_GraphicsDrawLineWithAngle

    [/autoit]


    Hier wird einfach die Graphic mithilfe von Rotationsmatrizen gedreht. Man könnte also statt _GDIPlus_GraphicsDrawLine auch einfach ein Bild zeichnen.;)

  • In den AutoIt-Beispielen ist sogar eine Anlog-Uhr dabei, ist mir eingefallen...
    Hier der Code, kannste aber auch einfach i den Examples rumsuchen

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt("MustDeclareVars", 1)

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

    ; ===============================================================================================================================
    ; Description ...: Simple clock using layered windows
    ; Author ........: Paul Campbell (PaulIA)
    ; Notes .........:
    ; ===============================================================================================================================

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

    ; ===============================================================================================================================
    ; Global constants
    ; ===============================================================================================================================

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

    Global Const $iCenter = 200
    Global Const $iDotOpacity = 250
    Global Const $iHourRad = 140
    Global Const $iMinRad = 200
    Global Const $iOpacity = 128
    Global Const $nPI = 3.1415926535897932384626433832795
    Global Const $iRadius = 200
    Global Const $iSecRad = 200
    Global Const $iTickLen = 0.02

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

    Global Const $AC_SRC_ALPHA = 1

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

    Global Enum $eScrDC=0, $eMemDC, $eBitmap, $eWidth, $eHeight, $eGraphic, $ePen, $eCap, $eBrush, $eFormat, $eFamily, $eFont, $eLayout, $eLast

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

    ; ===============================================================================================================================
    ; Global variables
    ; ===============================================================================================================================

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

    Global $hDial, $hTime, $hHour, $hMin, $hSec, $hDot, $aTime, $aHour, $aMin, $aSec, $aCurr[3][2], $aLast[3][2]

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

    ; ===============================================================================================================================
    ; Main
    ; ===============================================================================================================================

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

    ClockInit()
    DialDraw ()
    Draw ()
    DotDraw ()
    ClockLoop()
    ClockDone()

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

    ; ===============================================================================================================================
    ; Finalize clock
    ; ===============================================================================================================================
    Func ClockDone()
    ; Finalize GDI+ resources
    TimeDone()
    HourDone()
    MinDone ()
    SecDone ()

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

    ; Finalize GDI+ library
    _GDIPlus_Shutdown()
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize clock
    ; ===============================================================================================================================
    Func ClockInit()
    Local $iX, $iY

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

    ; Calculate the dial frame caption size
    $iX = -(_WinAPI_GetSystemMetrics($SM_CXFRAME))
    $iY = -(_WinAPI_GetSystemMetrics($SM_CYCAPTION) + _WinAPI_GetSystemMetrics($SM_CYFRAME))

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

    ; Allocate the window resources
    $hDial = GUICreate("Clock", $iRadius * 2, $iRadius * 2, -1, -1, 0, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
    GUISetState()
    $hTime = GUICreate("Time" , $iRadius * 2, $iRadius * 2, $iX, $iY, 0, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hDial)
    GUISetState()
    $hHour = GUICreate("Hour" , $iRadius * 2, $iRadius * 2, $iX, $iY, 0, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hDial)
    GUISetState()
    $hMin = GUICreate("Min" , $iRadius * 2, $iRadius * 2, $iX, $iY, 0, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hDial)
    GUISetState()
    $hSec = GUICreate("Sec" , $iRadius * 2, $iRadius * 2, $iX, $iY, 0, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hDial)
    GUISetState()
    $hDot = GUICreate("Dot" , $iRadius * 2, $iRadius * 2, $iX, $iY, 0, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hDial)
    GUISetState()

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

    ; Initialize GDI+ library
    _GDIPlus_Startup()

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

    ; Initialize GDI+ resources
    TimeInit()
    HourInit()
    MinInit ()
    SecInit ()

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

    ; Hook non client hit test message so we can move the clock
    GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
    EndFunc

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

    ; ===============================================================================================================================
    ; Loop until user exits
    ; ===============================================================================================================================
    Func ClockLoop()
    do
    Draw()
    until GUIGetMsg() = $GUI_EVENT_CLOSE
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the center dot
    ; ===============================================================================================================================
    Func DotDraw()
    Local $aDot

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

    $aDot = ResourceInit($iRadius * 2, $iRadius * 2)
    _GDIPlus_GraphicsFillEllipse($aDot[$eGraphic], $iRadius-10, $iRadius-10, 20, 20)
    ResourceSet ($hDot, $aDot, $iDotOpacity)
    ResourceDone($aDot)
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the clock elements
    ; ===============================================================================================================================
    Func Draw()
    ; Calculate current time element position
    $aLast = $aCurr
    $aCurr[0][0] = $iCenter + Cos(TimeToRadians("sec" )) * $iSecRad
    $aCurr[0][1] = $iCenter - Sin(TimeToRadians("sec" )) * $iSecRad
    $aCurr[1][0] = $iCenter + Cos(TimeToRadians("min" )) * $iMinRad
    $aCurr[1][1] = $iCenter - Sin(TimeToRadians("min" )) * $iMinRad
    $aCurr[2][0] = $iCenter + Cos(TimeToRadians("hour")) * $iHourRad
    $aCurr[2][1] = $iCenter - Sin(TimeToRadians("hour")) * $iHourRad

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

    ; Draw time elements
    TimeDraw()
    HourDraw()
    MinDraw ()
    SecDraw ()
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the clock dial
    ; ===============================================================================================================================
    Func DialDraw()
    Local $aDial, $hPen1, $hPen2, $iI, $iN, $iX1, $iY1, $iX2, $iY2

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

    $aDial = ResourceInit($iRadius * 2, $iRadius * 2)
    $hPen1 = _GDIPlus_PenCreate()
    $hPen2 = _GDIPlus_PenCreate(0xFF0000FF, 4)
    for $iI = 0 to 2 * $nPI Step $nPI / 30
    $iX1 = $iCenter + Cos($iI) * ($iRadius * (1.00 - $iTickLen))
    $iY1 = $iCenter - Sin($iI) * ($iRadius * (1.00 - $iTickLen))
    $iX2 = $iCenter + Cos($iI) * $iRadius
    $iY2 = $iCenter - Sin($iI) * $iRadius
    if Mod($iN, 5) = 0 then
    _GDIPlus_GraphicsDrawLine($aDial[$eGraphic], $iX1, $iY1, $iX2, $iY2, $hPen2)
    else
    _GDIPlus_GraphicsDrawLine($aDial[$eGraphic], $iX1, $iY1, $iX2, $iY2, $hPen1)
    endif
    $iN += 1
    next
    _GDIPlus_PenDispose($hPen2)
    _GDIPlus_PenDispose($hPen1)

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

    ResourceSet ($hDial, $aDial)
    ResourceDone($aDial)
    EndFunc

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

    ; ===============================================================================================================================
    ; Finalize resources for the hour hand
    ; ===============================================================================================================================
    Func HourDone()
    _GDIPlus_PenDispose($aHour[$ePen])
    _GDIPlus_ArrowCapDispose($aHour[$eCap])
    ResourceDone($aHour)
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the hour hand
    ; ===============================================================================================================================
    Func HourDraw()
    if ($aLast[2][0] = $aCurr[2][0]) and ($aLast[2][1] = $aCurr[2][1]) then Return
    _GDIPlus_GraphicsDrawLine($aHour[$eGraphic], $iCenter, $iCenter, $aCurr[2][0], $aCurr[2][1], $aHour[$ePen])
    ResourceSet($hHour, $aHour)
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize resources for the hour hand
    ; ===============================================================================================================================
    Func HourInit()
    $aHour = ResourceInit($iRadius * 2, $iRadius * 2)
    $aHour[$ePen] = _GDIPlus_PenCreate(0xFFFF00FF)
    $aHour[$eCap] = _GDIPlus_ArrowCapCreate($iHourRad / 2, 8)
    _GDIPlus_PenSetCustomEndCap($aHour[$ePen], $aHour[$eCap])
    EndFunc

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

    ; ===============================================================================================================================
    ; Finalize resources for the minute hand
    ; ===============================================================================================================================
    Func MinDone()
    _GDIPlus_PenDispose($aMin[$ePen])
    _GDIPlus_ArrowCapDispose($aMin[$eCap])
    ResourceDone($aMin)
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the minute hand
    ; ===============================================================================================================================
    Func MinDraw()
    if ($aLast[1][0] = $aCurr[1][0]) and ($aLast[1][1] = $aCurr[1][1]) then Return
    _GDIPlus_GraphicsFillRect($aMin[$eGraphic], 0, 0, $iRadius * 2, $iRadius * 2)
    _GDIPlus_GraphicsDrawLine($aMin[$eGraphic], $iCenter, $iCenter, $aCurr[1][0], $aCurr[1][1], $aMin[$ePen])
    ResourceSet($hMin, $aMin)
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize resources for the minute hand
    ; ===============================================================================================================================
    Func MinInit()
    $aMin = ResourceInit($iRadius * 2, $iRadius * 2)
    $aMin[$ePen] = _GDIPlus_PenCreate(0xFFFF0000)
    $aMin[$eCap] = _GDIPlus_ArrowCapCreate($iMinRad / 2, 8)
    _GDIPlus_PenSetCustomEndCap($aMin[$ePen], $aMin[$eCap])
    EndFunc

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

    ; ===============================================================================================================================
    ; Finalize resources for the second hand
    ; ===============================================================================================================================
    Func SecDone()
    _GDIPlus_PenDispose($aSec[$ePen])
    ResourceDone($aSec)
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the second hand
    ; ===============================================================================================================================
    Func SecDraw()
    if ($aLast[0][0] = $aCurr[0][0]) and ($aLast[0][1] = $aCurr[0][1]) then Return
    _GDIPlus_GraphicsFillRect($aSec[$eGraphic], 0, 0, $iRadius * 2, $iRadius * 2)
    _GDIPlus_GraphicsDrawLine($aSec[$eGraphic], $iCenter, $iCenter, $aCurr[0][0], $aCurr[0][1], $aSec[$ePen])
    ResourceSet($hSec, $aSec)
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize resources for the second hand
    ; ===============================================================================================================================
    Func SecInit()
    $aSec = ResourceInit($iRadius * 2, $iRadius * 2)
    $aSec[$ePen] = _GDIPlus_PenCreate(0xFF000000)
    EndFunc

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

    ; ===============================================================================================================================
    ; Finalize drawing resources
    ; ===============================================================================================================================
    Func ResourceDone(ByRef $aInfo)
    _GDIPlus_GraphicsDispose($aInfo[$eGraphic])
    _WinAPI_ReleaseDC (0, $aInfo[$eScrDC])
    _WinAPI_DeleteObject($aInfo[$eBitmap])
    _WinAPI_DeleteDC ($aInfo[$eMemDC ])
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize bitmap resources
    ; ===============================================================================================================================
    Func ResourceInit($iWidth, $iHeight)
    Local $aInfo[$eLast + 1]

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

    $aInfo[$eScrDC ] = _WinAPI_GetDC(0)
    $aInfo[$eMemDC ] = _WinAPI_CreateCompatibleDC($aInfo[$eScrDC])
    $aInfo[$eBitmap ] = _WinAPI_CreateCompatibleBitmap($aInfo[$eScrDC], $iWidth, $iHeight)
    _WinAPI_SelectObject($aInfo[$eMemDC], $aInfo[$eBitmap])
    $aInfo[$eWidth ] = $iWidth
    $aInfo[$eHeight ] = $iHeight
    $aInfo[$eGraphic] = _GDIPlus_GraphicsCreateFromHDC($aInfo[$eMemDC])
    _GDIPlus_GraphicsFillRect($aInfo[$eGraphic], 0, 0, $iRadius * 2, $iRadius * 2)
    Return $aInfo
    EndFunc

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

    ; ===============================================================================================================================
    ; Update layered window with resource information
    ; ===============================================================================================================================
    Func ResourceSet($hGUI, ByRef $aInfo, $iAlpha=-1)
    Local $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    if $iAlpha = -1 then $iAlpha = $iOpacity
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize )
    DllStructSetData($tSize, "X", $aInfo[$eWidth ])
    DllStructSetData($tSize, "Y", $aInfo[$eHeight])
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend )
    DllStructSetData($tBlend, "Alpha" , $iAlpha )
    DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
    _WinAPI_UpdateLayeredWindow($hGUI, $aInfo[$eScrDC], 0, $pSize, $aInfo[$eMemDC], $pSource, 0, $pBlend, $ULW_ALPHA)
    EndFunc

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

    ; ===============================================================================================================================
    ; Finalize resources for the digital time
    ; ===============================================================================================================================
    Func TimeDone()
    _GDIPlus_FontDispose ($aTime[$eFont ])
    _GDIPlus_FontFamilyDispose ($aTime[$eFamily])
    _GDIPlus_StringFormatDispose($aTime[$eFormat])
    _GDIPlus_BrushDispose ($aTime[$eBrush ])
    ResourceDone($aTime)
    EndFunc

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

    ; ===============================================================================================================================
    ; Draw the digital time
    ; ===============================================================================================================================
    Func TimeDraw()
    Local $sString, $aSize

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

    if ($aLast[0][0] = $aCurr[0][0]) and ($aLast[0][1] = $aCurr[0][1]) then Return
    $sString = StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC)
    $aSize = _GDIPlus_GraphicsMeasureString($aTime[$eGraphic], $sString, $aTime[$eFont], $aTime[$eLayout], $aTime[$eFormat])
    DllStructSetData($aTime[$eLayout], "X", $iRadius - (DllStructGetData($aSize[0], "Width") / 2))
    DllStructSetData($aTime[$eLayout], "Y", $iRadius / 3)
    _GDIPlus_GraphicsFillRect($aTime[$eGraphic], 0, 0, $iRadius * 2, $iRadius * 2)
    _GDIPlus_GraphicsDrawStringEx($aTime[$eGraphic], $sString, $aTime[$eFont], $aTime[$eLayout], $aTime[$eFormat], $aTime[$eBrush])
    ResourceSet($hTime, $aTime)
    EndFunc

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

    ; ===============================================================================================================================
    ; Initialize resources for the digital time
    ; ===============================================================================================================================
    Func TimeInit()
    $aTime = ResourceInit($iRadius * 2, $iRadius * 2)
    $aTime[$eBrush ] = _GDIPlus_BrushCreateSolid(0xFF008080)
    $aTime[$eFormat] = _GDIPlus_StringFormatCreate()
    $aTime[$eFamily] = _GDIPlus_FontFamilyCreate("Arial")
    $aTime[$eFont ] = _GDIPlus_FontCreate($aTime[$eFamily], 24, 1)
    $aTime[$eLayout] = _GDIPlus_RectFCreate(0, 0, $iRadius * 2, 40)
    EndFunc

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

    ; ===============================================================================================================================
    ; Convert time value to radians
    ; ===============================================================================================================================
    Func TimeToRadians($sTimeType)
    Switch $sTimeType
    case "sec"
    Return ($nPI / 2) - (@SEC * ($nPI / 30))
    case "min"
    Return ($nPI / 2) - (@MIN * ($nPI / 30)) - (Int(@SEC / 10) * ($nPI / 180))
    case "hour"
    Return ($nPI / 2) - (@HOUR * ($nPI / 6 )) - (@MIN / 12) * ($nPI / 30)
    EndSwitch
    EndFunc

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

    ; ===============================================================================================================================
    ; Handle the WM_NCHITTEST message so our window can be dragged
    ; ===============================================================================================================================
    Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
    if $hWnd = $hDial then Return $HTCAPTION
    EndFunc

    [/autoit]
  • Danke für eure Antworten. Nur ist es ein wenig viel Code für den Anfang. Nicht im Allgemeinen von AutoIt, sondern in Bezug auf die Analogzeiger-Programmierung. :D

    name22:
    Dein Code funktioniert nicht. :( :)

  • Das hier kommt bei mir in der Console:

    Spoiler anzeigen
    Code
    (48) : ==> Unknown function name.:
    _GDIPlus_GraphicsTranslateTransform($hGraphics, $iX_Rotate, $iY_Rotate)
    ^ ERROR
    >Exit code: 1	Time: 0.207

    Ich weiß nicht, vielleicht liegt es daran, dass ich gerade bei meinem Schwager bin und AutoIt schnell als ZIP-Datei heruntergeladen habe und es nicht installiert habe. Wobei ich nicht glaube, dass es daran liegt. ?(

    • Offizieller Beitrag

    Dir fehlt die GDIP.au3.