SET COLOR*
Define screen colors
Syntax
SET COLOR | COLOUR TO [[<standard>] [,<enhanced>] [,<border>] [,<background>] [,<unselected>]] | (<cColorString>)
Arguments
<standard> is the color that paints all console, full-screen, and interface commands and functions when displaying to the screen. This includes commands such as @…PROMPT, @…SAY, and ?; as well as functions such as ACHOICE(), DBEDIT(), and MEMOEDIT().
<enhanced> is the color that paints highlighted displays. This includes GETs with INTENSITY ON, the MENU TO, DBEDIT(), and ACHOICE() selection highlight.
<border> is the color that paints the area around the screen that cannot be written to.
<background> is not currently supported by any machines for which Computer Associates provides drivers. This setting is supplied for compatibility purposes only.
<unselected> is a color pair that provides input focus by displaying the current GET in the enhanced color while other GETs are displayed in this color.
<cColorString> is a character string enclosed in parentheses containing the color settings. This facility lets you specify the color settings as an expression in place of a literal string or macro variable.
SET COLOR TO with no argument restores the default colors to W/N, N/W, N, N, N/W.
Description
SET COLOR, a command synonym for the SETCOLOR() function, defines colors for subsequent screen painting activity. Each SET COLOR command specifies a list of color settings for the five types of screen painting activity. Each setting is a foreground and background color pair separated by the slash (/) character. Foreground defines the color of characters displayed on the screen. Background defines the color displayed behind the character. Spaces and nondisplay characters display as background only.
In addition to color, a foreground setting can have an attribute, high intensity or blinking. With a monochrome display, high intensity enhances brightness of painted text. With a color display, high intensity changes the hue of the specified color making it a different color. For example, N displays foreground text as black where N+ displays the same text as gray. High intensity is denoted by +. The blinking attribute causes the foreground text to flash on and off at a rapid interval. Blinking is denoted with *. An attribute character can occur anywhere in a setting, but is always applied to the foreground color regardless where it occurs.
Each color can be specified using either a letter or a number, but numbers and letters cannot be mixed within a setting. Note that numbers are supplied for compatibility purposes and are not recommended.
All settings are optional. If a setting is skipped, its previous value is retained with only new values set. Skipping a foreground or background color within a setting sets the color to black.
The following colors are supported:
Color Table ----------------------------------------------------------------------- Color Letter Number Monochrome ----------------------------------------------------------------------- Black N, Space 0 Black Blue B 1 Underline Green G 2 White Cyan BG 3 White Red R 4 White Magenta RB 5 White Brown GR 6 White White W 7 White Gray N+ 8 Black Bright Blue B+ 9 Bright Underline Bright Green G+ 10 Bright White Bright Cyan BG+ 11 Bright White Bright Red R+ 12 Bright White Bright Magenta RB+ 13 Bright White Yellow GR+ 14 Bright White Bright White W+ 15 Bright White Black U Underline Inverse Video I Inverse Video Blank X Blank -----------------------------------------------------------------------
SET COLOR is a compatibility command and is not recommended. It is superseded by the SETCOLOR() function which can return the current color as well as set a new color.
Notes
. Monochrome monitors: Color is not supported on monochrome monitors. Clipper, however, supports the monochrome attributes inverse video (I) and underlining (U).
. Screen drivers: SET COLOR TO, using numbers, may not be supported by screen drivers other than the default screen driver.
Examples
. This example uses the unselected setting to make the current GET red on white while the rest are black on white: cColor:= "W/N,R/W,,,N/W" SET COLOR TO (cColor) cOne := cTwo := SPACE(10) @ 1, 1 SAY "Enter One: " GET cOne @ 2, 1 SAY "Enter Two: " GET cTwo READ . In this example a user-defined function gets a password from the user using the blank (X) enhanced setting to hide the password as the user types: IF !DialogPassWord(12, 13, "W+/N", "FUNSUN", 3) ? "Sorry, your password failed" QUIT ENDIF FUNCTION DialogPassWord( nRow, nCol, ; cStandard, cPassword, nTries ) LOCAL nCount := 1, cColor := SETCOLOR() SET COLOR TO (cStandard + ", X") // Blank input // DO WHILE nCount < nTries cUserEntry:= SPACE(6) @ nRow, nCol SAY "Enter password: " GET ; cUserEntry READ // IF LASTKEY() == 27 SET COLOR TO (cColor) RETURN .F. ELSEIF cUserEntry == cPassword SET COLOR TO (cColor) RETURN .T. ELSE nCount++ ENDIF ENDDO // SET COLOR TO (cColor) RETURN .F.
Seealso
@…GET, @…SAY, ISCOLOR(), SETCOLOR(), SETBLINK()