>SET ESCAPE ON >ON ESCAPE DO iquit > >DEFINE WINDOW Superwnd FROM 10,10 TO 30, 30 NAME mywnd >WITH mywnd > .WIDTH=300 > .HEIGHT=300 > .AUTOCENTER=.T. > SHOW WINDOW Superwnd > SET CURSOR OFF > ACTIVATE WINDOW Superwnd > ACTIVATE SCREEN > Angle=0 > WAIT WINDOW NOWA "Hit ESC to terminate..." > > *Add some variables to allow the circles to bounce. > xdir = 1 > ydir = 1 > x=150 > y=70 > > DO WHILE .T. > > .FORECOLOR=65535 > .CIRCLE(50, m.x+m.y*COS(DTOR(m.Angle)), m.x+m.y*SIN(DTOR(m.Angle))) > .FORECOLOR=65408 > .CIRCLE(50, m.x-m.y*COS(DTOR(m.Angle)), m.x-m.y*SIN(DTOR(m.Angle))) > .FORECOLOR=16711680 > .CIRCLE(50, m.x+m.y*COS(DTOR(m.Angle+90)), m.x+m.y*SIN(DTOR(m.Angle+90))) > .FORECOLOR=255 > .CIRCLE(50, m.x+m.y*COS(DTOR(m.Angle+270)), m.x+m.y*SIN(DTOR(m.Angle+270))) > > IF m.Angle=359 > Angle=0 > ELSE > Angle=m.Angle+1 > ENDIF > > *Bounce the circles off the sides of the form > *by moving the center around. > IF m.x > 200 OR m.x < 100 > xdir = -1 * m.xdir > ENDIF > x = m.x + m.xdir > > IF m.y > 100 OR m.y < 25 > ydir = -1 * m.ydir > ENDIF > y = m.y + m.ydir > > ENDDO >ENDWITH > >DO iquit > >*------------- > PROCEDURE iquit > mywnd.CLS > RELEASE mywnd > RELEASE WINDOWS Superwnd > SET CURSOR ON > ON ESCAPE > WAIT CLEAR > CANCEL >Very nice indeed! But it worked so fast and took so many cycles that ESC didn't respond.