Contributed samples and applications by Dr. Claudio Soto
A simple way to modify the cursor …
Change BACKCOLOR of SPLITCHILD Window
Activate a format when READ is executed
Syntax
SET FORMAT TO [<idProcedure>[.<ext>]]
Arguments
TO <idProcedure> is a format (.fmt) file, a program (.prg) file, or a procedure.
<ext> is the extension of the format file. If not specified, the default extension is (.fmt).
SET FORMAT TO with no argument deactivates the current format.
Description
SET FORMAT defines a procedure to execute when a READ is invoked. Unlike the interpreted environment, formats are not opened and executed at runtime. Instead, the Harbour compiler treats SET FORMAT the same as a DO command. The compiler first looks to see whether it has already compiled a procedure with the same name as <idProcedure>. If it has, it uses that procedure for the reference. If <idProcedure> is not found, the compiler looks to disk for a file with the same name. If this file is not found, an external reference is generated that must be resolved at link time.
SET FORMAT is a compatibility command and not recommended.
Notes
. Active format procedures: Unlike other dialects where each work area can have an active format, Harbour supports only one active format procedure for all work areas.
. Screen CLEARing: Harbour does not clear the screen when a format procedure is executed.
. Legal statements: Format procedures allow statements and commands in addition to @…SAY and @…GET.
. Multiple pages: Harbour does not support multiple-page format procedures.
Examples
. This example uses a format procedure to add records to a database file until the user presses Esc: USE Sales NEW SET FORMAT TO SalesScr DO WHILE LASTKEY() != 27 APPEND BLANK READ ENDDO RETURN PROCEDURE SalesScr @ 12, 12 SAY "Branch : " GET Branch @ 13, 12 SAY "Salesman : " GET Salesman RETURN
Seealso
@…GET, @…SAY, PROCEDURE, READ
Toggle the message display from READ or MEMOEDIT()
Syntax
SET SCOREBOARD ON | off | <xlToggle>
Arguments
ON allows the display of messages from READ and MEMOEDIT() on line zero of the screen.
OFF suppresses these messages.
<xlToggle> is a logical expression that must be enclosed in parentheses. A value of true (.T.) is the same as ON, and a value of false (.F.) is the same as OFF.
Description
SET SCOREBOARD controls whether or not messages from READ and MEMOEDIT() display on line zero. When SCOREBOARD is ON, READ displays messages for RANGE errors, invalid dates, and insert status. MEMOEDIT() displays an abort query message and the insert status.
To suppress the automatic display of these messages, SET SCOREBOARD OFF.
Seealso
@…GET, MEMOEDIT(), READ
Toggle Esc as a READ exit key
Syntax
SET ESCAPE ON | off | <xlToggle>
Arguments
ON enables Esc as a READ exit key.
OFF disables Esc as a READ exit key.
<xlToggle> is a logical expression that must be enclosed in parentheses. A value of true (.T.) is the same as ON, and a value of false (.F.) is the same as OFF.
Description
If SET ESCAPE is ON, Esc terminates the current READ. Any changes made to the current Get object are lost, and validation with RANGE or VALID is bypassed. When SET ESCAPE is OFF and the user presses Esc, the key press is ignored. With SET KEY, however, you can reassign Esc for special handling, regardless of the status of SET ESCAPE.
Seealso
READ, READEXIT(), SETCANCEL(), SET KEY, SETKEY()
Toggle required exit key to terminate GETs
Syntax
SET CONFIRM on | OFF | <xlToggle>
Arguments
ON requires the user to press an exit key to leave a GET.
OFF allows the user to leave a GET by typing past the end without pressing an exit key.
<xlToggle> is a logical expression that must be enclosed in parentheses. A value of true (.T.) is the same as ON, and a value of false (.F.) is the same as OFF.
Description
SET CONFIRM determines whether an exit key is required to leave a GET. If CONFIRM is OFF, the user can type past the end of a GET and the cursor will move to the next GET, if there is one. If there is not another GET, the READ terminates. If, however, CONFIRM is ON, an exit key must be pressed to leave the current GET.
In all cases, attempting to leave the current GET executes the RANGE or VALID clauses, unless the user presses the Esc key. See @…GET for more information on the behavior of GETs.
Seealso
@…GET, READ, SET BELL
Release Get objects from the current GetList array
Syntax
CLEAR GETS
Description
CLEAR GETS explicitly releases all Get objects in the current and visible GetList array, and terminates the calling READ, releasing any remaining objects in the calling READ, if executed within a SET KEY procedure or a user-defined function invoked by a VALID clause. CLEAR GETS releases Get objects by assigning an empty array to the variable GetList. GetList is the name of the variable used to hold an array of Get objects for subsequent READ commands. There are two other mechanisms that automatically release Get objects: CLEAR specified without the SCREEN clause, and READ specified without the SAVE clause.
CLEAR GETS has two basic uses. First, it can be used to terminate a READ from a SET KEY procedure or VALID user-defined function. Second, it can be used to delete Get objects from the GetList array when you have not executed a READ or you have saved the Get objects by using READ SAVE.
Seealso
@…CLEAR, @…GET, CLOSE, READ, RELEASE, SET TYPEAHEAD
Return variable name of current GET or MENU
Syntax
READVAR( [<cVarName>] ) --> cOldVarName
Arguments
<cVarName> is a new variable name to set.
Returns
READVAR() return the old variable name. If no variable previously was set, READVAR() return “”.
Description
READVAR() is set inside a READ or MENU TO command to hold the uppercase name of the GET / MENU TO variable, and re-set back to old value when those commands finished. You should not normally set a variable name but rather use it to retrieve the name of a GET variable when executing a VALID or WHEN clause, or during SET KEY execution and you are inside a READ or MENU TO.
Examples
// display a menu, press F1 to view the MENU TO variable name CLS @ 1, 10 PROMPT "blood sucking insect that infect beds " @ 2, 10 PROMPT "germ; virus infection " @ 3, 10 PROMPT "defect; snag; (source of) malfunctioning" @ 4, 10 PROMPT "small hidden microphone " @ 6, 10 SAY "(Press F1 for a hint)" SET KEY 28 TO ShowVar MENU TO What_Is_Bug PROCEDURE ShowVar Alert( ReadVar() ) // WHAT_IS_BUG in red ALERT() box
Compliance
READVAR() works exactly like CA-Cl*pper’s READKEY().
Note however, that the <cVarName> parameter is not documented and used internally by CA-Cl*pper.
Platforms
All
Files
Library is rtl
Seealso
@…GET, @…PROMPT, MENU TO, READ, SET KEY, __AtPrompt(), __MenuTo()