[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
FT_SETKEYS()
Get array of keys redirected via the SetKey() or SET KEY
------------------------------------------------------------------------------
Syntax
FT_SetKeys() --> aKeyValues
Arguments
None
Returns
An array from 0 to n elements, where n is the number of keys that
have been redirected via SetKey(). Each element in the array contains
the Inkey() value of a key that has been redirected.
Description
Nantucket encourages Clipper programmers to write modular code -- black
boxes that do not modify any global settings without resetting them
on exit. In the past, this has proven cumbersome where SetKey() is
concerned, because the only way to see if a key had been redirected
was to call SetKey() and see if it returned NIL or a code block. To
check every possible key value was unacceptably slow.
This function attempts to alleviate this problem by returning an array
that contains only those keys that have been redirected. It is
substantially faster than the method mentioned above because it
directly accesses Clipper's internal table of redirected keys.
Some highly unorthodox programming techniques, not to mention rather
strange use of Clipper internals, was necessary to make this function
work. If this makes you uncomfortable, then don't use this function,
you snivelling coward.
Examples
local aKeys := FT_SetKeys() // Get the key table
local aBlox := {} // Create a parallel array
local i
for i := 1 to len( aKeys )
// Nullify all redirections, while saving code block
// for later restoration
aadd( aBlox, setkey( aKeys[ i ], NIL )
next
// Do some stuff
for i := 1 to len( aKeys )
// Restore the redirections
setkey( aKeys[ i ], aBlox[ i ] )
next
Source: SETKEYS.ASM
Author: Ted Means
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson