' Animated cursors for Rapid-Q
' Requires CURSORS.DLL, which is just a resource with 12 cursors

$TYPECHECK ON

DECLARE FUNCTION LoadLibrary LIB "KERNEL32" ALIAS "LoadLibraryA" _
                 (LibFileName AS STRING) AS LONG
DECLARE FUNCTION FreeLibrary LIB "KERNEL32" ALIAS "FreeLibrary" _
                 (hInst AS LONG) AS LONG
DECLARE FUNCTION LoadCursor LIB "USER32" ALIAS "LoadCursorA" _
                 (hInst AS LONG, CursorName AS STRING) AS LONG

DECLARE SUB Timer1Expired (Sender AS QTIMER)

DIM I AS LONG, hInst AS LONG

hInst = LoadLibrary("CURSORS.DLL")

FOR I = 1 TO 12
    Screen.Cursors(I) = LoadCursor(hInst, "CURSOR_"+STR$(I))
NEXT

DIM Timer1 AS QTIMER
    Timer1.Interval = 100
    Timer1.Enabled = 1
    Timer1.OnTimer = Timer1Expired


CREATE Form AS QFORM
    Caption = "Animated cursor"
    Center
    Cursor = 1
    ShowModal
END CREATE

FreeLibrary(hInst)
END


SUB Timer1Expired (Sender AS QTIMER)
    Sender.Interval = 100
    Form.Cursor = (Form.Cursor + 1) MOD 13
END SUB
