Silverfrost Logo About Us | Contact Us
 

Screen saver - %sv

By using %sv it is possible to create a screen saver. A format window that includes %sv will close as soon as it receives mouse or keyboard input. The executable should be renamed to a <filename>.SCR file, placed in the Windows directory and then selected as the current screen saver from the Control Panel. Apart from its obvious use, a screen saver can be used to perform a lengthy calculation. To ensure the calculation is continued from where it was interrupted, the %cc (window closure format) should be used to trap the closure and perform file I/O.

For example:

        WINAPP
        INCLUDE <windows.ins>
        INTEGER xres,yres,g_handle,r,g,b,i
        COMMON  xres,yres,g_handle,r,g,b
        EXTERNAL redraw_screen
        DOUBLE PRECISION secds
        secds=1.0
        r=20
        g=64
        b=11
        xres=clearwin_info@('screen_width')
        yres=clearwin_info@('screen_depth')
c ---   %bg background colour
        i=winio@('%sv%bg[black]&')
c ---   Define a window that takes the Whole display area
        i=winio@('%ww[no_caption,no_maxminbox,no_sysmenu,'
     +   // 'no_frame,no_border,topmost]&')
        i=winio@('%`gr[rgb_colours,black]&',xres,yres,g_handle)
c ---   Use a periodic delayed callback to initiate updates
        i=winio@('%dl',secds,redraw_screen)
        END
c ---------------------------------------------------------
        INTEGER FUNCTION redraw_screen()
        INCLUDE <windows.ins>
        INTEGER xres,yres,g_handle,r,g,b,loop
        COMMON  xres,yres,g_handle,r,g,b
        CALL select_graphics_object@(g_handle)
        DO loop=1,yres
          CALL draw_line_between@(0,loop,xres,loop,RGB@(r,g,b))
          r=r+1
          g=g+3
          b=b+5
          IF(r.GT.255) r=0
          IF(g.GT.255) g=g-255
          IF(b.GT.255) b=b-255
        ENDDO
        redraw_screen=1
        END

 

 

Copyright © 1999-2017 Silverfrost Limited