In order for this site to work correctly, and for us to improve the site, we need to store a small file (called a cookie) on your computer.
By continuing to use this website, you agree to our cookies and privacy policy.
Home page Home page Home page Home page
Pixel Header R1 C1 Pixel
Pixel Header R2 C1 Pixel
Pixel Header R3 C1 Pixel

Uncommon Knowledge - WC_WEXIT_KEYS%

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
< 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 :-

0001  Subroutine Make_Plus_Save
0002  $Insert Include, Window_Common%
0003  WC_Wexit_Keys<7> = Char(43)
0004  @Int.Const<6> = Char(43)
0005  Return

(Volume 4, Issue 1, Pages 11,12)
Pixel Footer R1 C1 Pixel