Page 2
Finding a Flexkey Definition
by Curtis Krauskopf
One of the challenges of the flexibility of Flexkeys
is that two different DataFlex installations could be
using two completely different keyboard mappings. For
example, one installation might use the standard default
mapping, and another installation might use mnemonic
associations.
Flexkey
History
Around the time that DataFlex 3.0 was released,
DAC dramatically changed the standard definitions
of many of the Flexkeys. Their intention
was to mimic, as closely as possible, the
IBM
Common User Access (IBM-CUA) standards
that were in vogue. But as lamented in the
June 1991 issue of GUIDE
Helsinki Conference, the IBM CUA standard
kept changing every two years or so.
|
|
Older versions of DataFlex (before 3.0) use a program
called DFSETUP to customize
the Flexkeys. The Flexkey definitions are stored in
a file called TERMLIST.CFG.
Newer versions of DataFlex (3.0 and later) use a program
called DFCONFIG.FLX that
is executed with the DataFlex runtime: dfrun
dfconfig. The Flexkey definitions are stored
(using codes) in the DFINI.CFG
file.
The DFCONFIG.FLX program
in newer versions of DataFlex displays the definition
of the Flexkey in plain text. However, the older DFSETUP
program doesn't do that in all cases. DFSETUP
displays most of the Flexkeys in a cryptic keyboard
code, such as ^MC. What
key represents ^MC? It's
a mystery.
One way to discover most of the Flexkey definitions
is to use the following DataFlex program. KEYS.SRC
will compile correctly for all versions of DataFlex.
It's intended to show the Flexkey definitions for versions
of DataFlex before 3.0.
To use it, compile it and then run it:
dfcomp keys.src
dfrun keys
Next, try different keyboard commands. I usually start
by doing obvious things, like the left
and right arrows, enter,
page up and so forth. Next,
I run through the function keys, pressing each one in
turn. Then I try the shift+
and control+ function keys,
and on a PC workstation, I try the ALT+
function keys. After that, I try all of the Control+letter
combinations, such as Control+S.
Unless the key is defined to be something really strange,
like Alt+Ctrl+], I can
usually find the definitions of all of the Flexkeys
in a couple minutes.
As each Flexkey is encountered, an X appears next to
the Flexkey name and the name of the Flexkey appears
in the upper right-hand corner of the screen.
/Comments
// KEYS.SRC
//
// by Curtis Krauskopf
// (c) 1992 The Database Managers, Inc.
// http://www.decompile.com
//
// This program helps a user determine the Flexkey definitions.
//
// Try different keyboard commands:
// 1) Try the obvious things, like LEFT and RIGHT arrows, Enter and
// so forth.
// 2) Run through all of the function keys, from F1 through F10.
// 3) Try all of the SHIFT+, CONTROL+ and ALT+ versions of the
// function keys.
// 4) Try all of the CONTROL+letter combinations, such as CONTROL+S.
// 5) Try all of the ALT+letter combinations.
// 6) Try anything else that might be defined, such as ALT+CTRL+]
//
/feedback
Press keys to determine their Flexkey definitions.
PRESS ESC TO QUIT. If ESC does not quit this program, then
some other key is defined as the 'exit program' command and
that key should be used instead of ESC.
Finding a Record: Most Recent Key:
KEY.FIND _ KEY.SFIND _ ____________________
KEY.PREVIOUS _ KEY.NEXT _
Editing:
KEY.SAVE _ KEY.DELETE _
Cursor Movement:
KEY.FIELD _
KEY.LEFT _ KEY.RIGHT _
KEY.UP _ KEY.DOWN _ Written by Curtis Krauskopf
The Database Managers, Inc.
Misc: http://www.decompile.com
KEY.CALCULATE _ KEY.CLEAR _
KEY.HELP _ KEY.PRINT _
KEY.USER _ KEY.USER2 _
KEY.RETURN _
/*
AUTOPAGE feedback 3
name result
STRING akey 1
PAGE feedback
REPEAT
INKEY akey
UNTIL [KEY.ESCAPE]
KEYPROC KEY.ESCAPE
ABORT
KEYPROC KEY.FIND
MOVE "KEY.FIND" TO result
MOVE "X" TO feedback.1
RETURN
KEYPROC KEY.SFIND
MOVE "KEY.SFIND" TO result
MOVE "X" TO feedback.2
RETURN
KEYPROC KEY.PREVIOUS
MOVE "KEY.PREVIOUS" TO result
MOVE "X" TO feedback.4
RETURN
KEYPROC KEY.NEXT
MOVE "KEY.NEXT" TO result
MOVE "X" TO feedback.5
RETURN
KEYPROC KEY.SAVE
MOVE "KEY.SAVE" TO result
MOVE "X" TO feedback.6
RETURN
KEYPROC KEY.DELETE
MOVE "KEY.DELETE" TO result
MOVE "X" TO feedback.7
RETURN
KEYPROC KEY.FIELD
MOVE "KEY.FIELD" TO result
MOVE "X" TO feedback.8
RETURN
KEYPROC KEY.LEFT
MOVE "KEY.LEFT" TO result
MOVE "X" TO feedback.9
RETURN
KEYPROC KEY.RIGHT
MOVE "KEY.RIGHT" TO result
MOVE "X" TO feedback.10
RETURN
KEYPROC KEY.UP
MOVE "KEY.UP" TO result
MOVE "X" TO feedback.11
RETURN
KEYPROC KEY.DOWN
MOVE "KEY.DOWN" TO result
MOVE "X" TO feedback.12
RETURN
KEYPROC KEY.CALCULATE
MOVE "KEY.CALCULATE" TO result
MOVE "X" TO feedback.13
RETURN
KEYPROC KEY.CLEAR
MOVE "KEY.CLEAR" TO result
MOVE "X" TO feedback.14
RETURN
KEYPROC KEY.HELP
MOVE "KEY.HELP" TO result
MOVE "X" TO feedback.15
RETURN
KEYPROC KEY.PRINT
MOVE "KEY.PRINT" TO result
MOVE "X" TO feedback.16
RETURN
KEYPROC KEY.USER
MOVE "KEY.USER" TO result
MOVE "X" TO feedback.17
RETURN
KEYPROC KEY.USER2
MOVE "KEY.USER2" TO result
MOVE "X" TO feedback.18
RETURN
KEYPROC KEY.RETURN
MOVE "KEY.RETURN" TO result
MOVE "X" TO feedback.19
RETURN
|
when the program runs, it looks like this:
|
|
|
|
Press keys to determine their Flexkey definitions.
PRESS ESC TO QUIT. If ESC does not quit this program, then
some other key is defined as the 'exit program' command and
that key should be used instead of ESC.
Finding a Record: Most Recent Key:
KEY.FIND _ KEY.SFIND _ ____________________
KEY.PREVIOUS _ KEY.NEXT _
Editing:
KEY.SAVE _ KEY.DELETE _
Cursor Movement:
KEY.FIELD _
KEY.LEFT _ KEY.RIGHT _
KEY.UP _ KEY.DOWN _ Written by Curtis Krauskopf
The Database Managers, Inc.
Misc: http://www.decompile.com
KEY.CALCULATE _ KEY.CLEAR _
KEY.HELP _ KEY.PRINT _
KEY.USER _ KEY.USER2 _
KEY.RETURN _
|
|
|
|
|
Copyright 2003-2010 The Database Managers, Inc.
|