Home page Home page Home page Home page
Pixel
Pixel Header R1 C1 Pixel
Pixel Header R2 C1 Pixel
Pixel Header R3 C1 Pixel
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
                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 :-


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
Pixel Footer R1 C1 Pixel
Pixel
Pixel
Pixel