How to Create Random Color Pairs

Last reviewed: April 30, 1996
Article ID: Q109154
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0
  • Microsoft FoxPro for MS-DOS, versions 1.02, 2.0, 2.5x, 2.6x
  • Microsoft FoxPro for Windows, versions 2.5x, 2.6x
  • Microsoft FoxPro for Macintosh, version 2.5x, 2.6a

SUMMARY

It is sometimes desirable to randomly generate colors, for example, for a screen that changes the color for a @ ... SAY statement. This article demonstrates a sample procedure for creating random colors.

MORE INFORMATION

The following code displays the text "This is a test" with various randomly generated colors.

   FOR i = 1 to 50
      colorpair = randcolor()
      @ 2,2 SAY "This is a test" COLOR &colorpair
      FOR n = 1 to 10000 && Slows it down a bit so you can see it!
      ENDFOR
   ENDFOR

   PROCEDURE randcolor
   numcolor = INT(RAND()*100)                 && Create a 2-digit number
   num1 = ALLTRIM(STR(numcolor/10))           && store 1st digit
   num2 = ALLTRIM(STR(INT(MOD(numcolor,10)))) && store 2nd digit
   * Select one valid color from random digit
   color1 = CHRTRAN(num1,"0123456789","WNRGBBGRNW")
   color2 = CHRTRAN(num2,"0123456789","WNRGBBGRNW")
   * Combine two colors to create color pair
   colstrg = color1 + "," + color2
   RETURN colstrg


Additional reference words: VFoxWin 3.00 FoxMac FoxDos FoxWin 1.02 2.00
2.50 2.50a 2.50b 2.50c 2.60 2.60a
KBCategory: kbprg kbcode
KBSubcategory: FxprgGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 30, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.