====== Uncommon Knowledge - WC_WEXIT_KEYS%===== ^Published By^Date^Version^Knowledge Level^Keywords^ |Sprezzatura Ltd|01 MAY 1992||EXPERT|WC_WEXIT_KEYS%, WINDOW_COMMON%| Field mark delimited array of scan codes of keys used to exit Scribe currently having the following structure (N.B. because this array contains @Int.Const it is subject to change in later releases). As the keys below are generally soft (being taken from arrays such as @Move.Keys et al) the equate name from EDIT.KEYS is given with the default assignment in brackets following. |<1>|Literal "?!"| |<2> - <31>|Same structure as @Insert as documented in the insert block EDIT.KEYS.| |<32>|Last.Page$ (Ctrl PgDn)| |<33>|First.Page$ (Ctrl PgUp)| |<34>+|Softkeys if defined / Relations keys if defined| |<34+n>|(Where n is number of softkeys and relations defined) Literal "?!"| |<35+n>|Alt C - Copy record key. Hard coded. Cannot be changed to another key definition.| |<36+n>|Page.Down$ (PgDn)| |<37+n>|Page.Up$ (PgUp)| |<38+n>|Blank| |<39+n>|Enter$ (Char 13)| |<40+n>|Down$ (Arrow down)| |<41+n>|Up$ (Arrow Up)| |<42+n>|Ins_Line$ (Ctrl-N)| |<43+n>|Del_Line$ (Ctrl-D)| |<44+n>|To_Line$ (Ctrl-G)| Disabling keys on the fly is thus made possible by locating the appropriate field within WExit_Keys and nulling it down (saving off a copy in case it is required to be restored later). Changing the definition of a key on the fly is less simple though. An attempt to assign Save to the + key by adding + to WExit_Keys will fail, as although this will cause scribe to exit when + is pressed, the window interpreter still does not recognise the code entered. This tends to suggest that it is checking WExit_Keys for valid exit keys, but checking the original array for the actual action keys. Thus to make + save records on the fly one would have to change WExit_Keys AND amend @Int.Const as follows :- Subroutine Make_Plus_Save $Insert Include, Window_Common% WC_Wexit_Keys<7> = Char(43) @Int.Const<6> = Char(43) Return (Volume 4, Issue 1, Pages 11,12)