Paradox Community

Items in pnews.paradox-dos

Subject:Re: Pdox DOS keycodes
Date:Sat, 12 Aug 2017 09:49:00 -0400
From:"Steven Green" <greens@diamondsg.com>
Newsgroups:pnews.paradox-dos

it's in this one

--

Steven Green
Myrtle Beach, South Carolina, USA

http://www.OasisTradingPost.com

Collectibles and Memorabilia
Vintage Lego Sets and Parts
- and Paradox support, too

"Bernie van't Hof"  wrote in message 
news:598e6032@pnews.thedbcommunity.com...

Anyone got the keycode maps in a handy form? Easier than working them
all out manually!

I know it is in the manual, which I no longer have.

Bernie 


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


COLOR TABLES  (4.0)

  There are 50 colors used by Paradox 4.0 in
  "standard" mode. There are 25 colors used
  by Paradox 4.0 in "compatible" mode.

  You can create a dynarray with the palette
  of current colors with .
  These global colors can be changed from a
  dynarray with ; the color for
  negative values can be set with
  .

  You can also set colors of individual
  windows with  and
  .

  The indexes 1000-1070 represent colors
  that are used in Paradox standard mode.
  The indexes for 0-31 represent colors in
  compatibility mode.

  See lists: ,
             

Colors in "Standard" Mode

 General
    1000    Desktop area

 Menu
    1001   Inactive menu command text.
    1003   Hot key for inactive menu.
    1004   Highlighted menu command text.
    1006   Hot key for highlighted menu.

 Frames
    1007   Inactive image window frame.
    1008   Active image window frame.
    1009   Frame icons i.e. close box.
    1015   Help window frame.
    1023   Inactive canvas window frame.
    1024   Active canvas window frame  .
    1025   Canvas frame icon e.g. Ä[þ]Ä.
    1031   Inactive dialog box frame.
    1032   Active dialog frame.
    1033   Selected dialog box frame
           (when dragging with mouse).

 Scroll Bars
    1010   Scroll bar.
    1011   Scroll bar controls.
    1026   Canvas window scroll bar.
    1027   Canvas window scroll bar control.

 Dialog Boxes
    1031   Inactive dialog box frame.
    1032   Active dialog frame.
    1033   Selected dialog box frame
            (when dragging with mouse).
 Scroll Bar
    1034   Scroll bar page area.
    1035   Scroll bar controls.

 Canvas
    1036   Background text (canvas element).

 Type-In Box
    1037   Label when type-in box is inactive.
    1038   Label when type in box is active.
    1039   Type-in box label hot-key.

 Push Button
    1040   Button text for de selected label.
    1041   Button text for default label.
    1042   Button text for selected label.
    1044   Button label hot key.
    1045   Button shadow.

 Radio Button Or Check Box
    1046   Inactive radio button or check
           box item.
    1047   Highlighted radio button or
           check box item.
    1048   Hot key for radio button or
           check box item.

 Type-In Box
    1049   Normal type-in box.
    1050   Selected type-in box.
    1051   Type-in box arrows.

 Pick List
    1056   Normal pick list item text.
    1057   Highlighted pick list item text.
           when pick list is active.
    1058   Selected pick list item when.
           pick list control is not active.
    1059   Column dividers.

 Speed Bar
    1063   Speed bar normal text.
    1065   Shortcut key text.
    1066   Normal text when selected by mouse.
    1068   Shortcut key text when selected by
           mouse.
    1069   Speed bar vertical separator line.
    1071   Speed Bar status text on speed bar.

 Sql
    1070   Prompt indicating SQL server for a
           selected replica table.

  See lists: ;
             ; ;
             ; ;
             ; 

Compatibility Mode Colors

   Index    Description
   ÄÄÄÄÄ    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
   General
     0      Menu - Top two screen lines and
            menu choices.
     2      Current menu choice.
     4      Current menu description.
     5      Mode indicator.
     8      Workspace & Literals in the Report
            designer.
     19     Examples and checkmarks.

 Image Display
     6      Non-current table border.
     9      Current table border.

 Field Display
     11     FieldView cursor or edit marker
            when record is locked.
     17     Field values in table and form view;
            field symbols in Report Designer.
     18     Negative values in numeric or
            currency fields.

 Message/Status Display
     3      Message and PAL Debugger line.
     16     PAL Debugger status.

 High/Report Designer
     12     Help system border.
     13     Normal help text.
     14     Selected Help text.
     15     Highlighted text (Reverse video).
     21     Normal help index text.
     22     Highlighted help.
     23     Current help index.

 Report
     24     Vertical rule and page width
            edge marker in Report Designer.
     25     Report band lines in Report
            Designer.

 Form
     7      Form area to be moved.
     27     Reverse video and high intensity
            on B&W monitors.
     28     Reverse video text on B&W monitors.
     29     High intensity on B&W monitors.

  See lists: ; ;
             ; ;
             ; ;
             .

Disappearing Windows  (4.x)

   While in Main, Edit and CoEdit modes with
   multiple tables and forms displayed on the
   workspace, you will find related tables
   appearing and disappearing as you move among
   the images.  Paradox removes "conflicting"
   images while you're viewing a form that
   contains one of the tables on the workspace
   as a linked form.

   For example, imagine this scenario:  TableA
   has a single form, which includes TableB as a
   linked embedded table.  TableB has two Forms:
   Form1, which appears on TableAm, and FormF,
   which is a standard single-record form.

   TableA and TableB are placed on the desktop
   in tableview.

   1. TableA's formview is selected: the
      tableview of TableB will disappear.

   2. TableB's Form1 is selected, then tableview
      of TableA is selected and its form is
      placed on the desktop: the tableview for
      TableB will disappear, but not the
      formview.

   3. TableB's FormF is selected, then tableview
      of TableA is selected and its form is
      placed on the desktop: both of TableB's
      images will disappear until the tableview
      of TableA is once again selected.

   In all of the above scenarios, the tableview
   of TableB is restored when TableA's tableview
   becomes the current image.

   In none of the above scenarios will the
   formview for TableA disappear.

   As you may imagine, the situation gets much
   more complex as different relationships are
   examined.  You should fully understand the
   behaviour of *your* tables and forms before
   attempting to write an application.

   See: .


Events

   Paradox 3.x is driven by keystrokes.

   Paradox 4.x is driven by events. An
   event is a measurable action, whether
   external, like a keystroke or a mouse
   click, or internal, for example, from
   the passing of time (an "IDLE" event).

   There are four types of events in PAL.
   Three are caused by user interaction and
   the fourth is caused the passing of time.
   Events aren't simply described;
   to accommodate the varying nature of the
   event, Paradox uses a dynamic array to
   hold the information required to describe
   and enable you to examine or recreate
   the event.

   There are four types of events:

               external
             external
           internal
              internal

   Each are described by the values in four
   distinct DynArrays.

   The  command captures an event into
   a dynamic array. An  can recreate an
   event based on a valid dynamic array for that
   event. In Paradox 4.5, events can be placed
   into the stream for later execution with
    and .

   Mouse and Keyboard events can be described
   with the indexes and values described in the
   following tables. The MOUSE, KEY, and MESSAGE
   event dynamic arrays can also contain the
   keyboard state indexes described for the
    command.


Mouse Events

   Mouse events can be captured with .
   A valid mouse event must have values for the
   following dynamic array elements.  This
   dynarray can also contain keyboard info (as
   with ).

  Dynarray
  Index           Value
  ÄÄÄÄÄÄÄÄÄÄÄ     ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  "TYPE"         "MOUSE"

  "ROW"           Row number relative to screen.
  "COL"           Col number relative to screen.

  "BUTTONS"      "LEFT" for left mouse button;
                 "RIGHT" for right button.
  "DOUBLECLICK"   True for double-click;
                  False otherwise.

  "ACTION"       "DOWN"  upon button down;
                 "UP"    upon release;
                 "AUTO"  when holding down
                  without moving.

 Example:

~ Dynarray MOUSE.Y[]    ;Left Click

     MOUSE.Y["TYPE"]        = "MOUSE"
     MOUSE.Y["ROW"]         = 9
     MOUSE.Y["COL"]         = 18
     MOUSE.Y["BUTTONS"]     = "LEFT"
     MOUSE.Y["ACTION"]      = "DOWN"
     MOUSE.Y["DOUBLECLICK"] = False ~

   See:  to translate the
        coordinates of a  array to
        correspond to the current window;
         to reverse a
        LOCALIZEEVENT; .


KEY EVENTS

   A dynamic array representing a KEY event must
   contain a TYPE index and either a SCANCODE or
   a . If both are present and there is
   a conflict between the two, the SCANCODE will
   override the KEYCODE. Key events can be created
   with  and executed with  or
   placed into the event stream for later
   execution with  and .

   In addition to the two or three DynArray
   indexes listed below,  will create a
   full state of the keyboard as created with
   .

  Dynarray
  Index          Value
  ÄÄÄÄÄÄÄÄÄÄÄ    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  "TYPE"        "KEY" for a key event
  "SCANCODE"     Number that represents the
                 code associated with the
                 key by the system BIOS.
  "KEYCODE"      Number that represents the
                 ASCII or IBM extended code.

   Example:

~    ;F10 keypress can be represented
     Dynarray EVENT.Y[]
     EVENT.Y["TYPE"]     = "KEY"
     EVENT.Y["SCANCODE"] = 17408
     EVENT.Y["KEYCODE"]  = -68 ~

  See: 

Message Events

   A dynamic array representing a MESSAGE event
   must contain the following index elements and
   one of its corresponding values:

  Dynarray
  Index      Value
  ÄÄÄÄÄÄÄÄÄ  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  "TYPE"    "MESSAGE"

  "MESSAGE" "CLOSE"      Close current window.
            "RESIZE"     Resize current window.
            "MAXIMIZE"   Maximize/Restore
                         current window.
            "NEXT"       Select next window.
            "MENUSELECT"  menu
                         selected.
            "MENUKEY"    Key in UNTIL list of
                         SHOWPULLDOWN.

  "MENUTAG"  For "MENUSELECT" and "MENUKEY",
             the tag associated with the
             SHOWPULLDOWN choice.


Idle Events

   A dynamic array representing an IDLE event
   must contain a single index, "TYPE", that
   is assigned the value "IDLE".

  ~    DYNARRAY Event.y[]
       Event["TYPE"] = "IDLE"

  See: 


WAIT Triggers

  While  traps MOUSE, KEY, MESSAGE, and
  IDLE events, additional events can be trapped
  during a  or a .

  During the WAIT/ENDWAIT, you can trap for
  special events called Triggers.

  Triggers are database events that can be used
  to control or direct user interaction within
  tables.  By specifying triggers in the
  EventList in a WAIT, you can can carefully
  control how the wait behaves. Triggers are of
  two classes, "BEFORE" and "AFTER".

  ù "BEFORE" triggers allow you trap and deny
     the event.

  ù "AFTER" triggers are purely informational;
     they inform you that an event has occurred.

  ù * Indicates new to 4.5

Event/Trigger   Class  Caused by
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ  ÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
"EVENT"         BEFORE Attempting any MOUSE or
                       Key interaction listed in
                       the WAIT EventList. See
                        for structure
                       of the array created.

"DEPARTFIELD"   BEFORE Leaving a field.
"DEPARTROW"     BEFORE Leaving a record.
"TOUCHRECORD"   BEFORE Touching any record in
                       Edit mode, or previously
                       untouched record in
                       CoEdit mode.
"DEPARTPAGE"    BEFORE Leaving a form page.
"DEPARTTABLE"   BEFORE Leaving a table.
"INSRECORD"*    BEFORE Inserting or appending a
                       record.
"DELRECORD"*    BEFORE Deleting a record.
"TOUCHFIELD"*   BEFORE Changing active field.
"ENDFIELDVIEW"* BEFORE Exiting  (or
                       closing Editor if in a
                       Memo Field).
"FIELDVIEW"*    BEFORE Going into fieldview.
"LOOKUP"*       BEFORE Going into Lookup Help.
"MENU"*         BEFORE This event can't be
                       intercepted, but will be
                       in the event array when
                       you get the trigger.
"UNDOCHANGE"*   BEFORE Undoing changes to a
                       posted record.
"UNDODEL"*      BEFORE Undoing record deletion.
"UNDOINS"*      BEFORE Deleting a posted record
                       that was inserted and
                       posted earlier.
"UNDOUNPOST"*   BEFORE Undoing changes to an
                       unposted record.
"CLOSE"*        BEFORE Wait proc returned 2 to
                       the WAIT.
"POSTRECORD"    BEFORE Posting a record.
"IMAGERIGHTS"   BEFORE Modifying a table with
                        set to
                       READONLY.
"PASSRIGHTS"    BEFORE Attempting action in a
                       password protected field
                       without sufficient rights
"REQUIREDVALUE" BEFORE Leaving a required-value
                       field without providing a
                       value.
"VALCHECK"      BEFORE Attempting an action that
                       results in a valcheck
                       violation.
"DISPLAYONLY"   BEFORE Modifying a display-only
                       field on embedded detail.
"READONLY"      BEFORE Attempting to change a
                       table that is read-only
                       at DOS or network level.
"OPEN"*         AFTER  WAIT opened.
"DONE"*         AFTER  Pressed F2 at table or
                       form level (only if F2
                       would normally exit an
                       editing mode or start a
                       query).
"ARRIVEPAGE"    AFTER  Arrived on form page.
"ARRIVEWINDOW"  AFTER  Arrived in a new window.
"ARRIVETABLE"   AFTER  Arrived in a new table.
"FLYAWAY"*      AFTER  Action made current
                       record change table
                       position so that it's no
                       longer the current record
"RECORDDELETED"*AFTER  Current record deleted by
                       another user.
"RECORDCHANGED"*AFTER  Current record changed by
                       another user.
"ARRIVEROW"     AFTER  Arrived in a new record.
"ARRIVEFIELD"   AFTER  Arrived in a new field.
"REFRESH"*      AFTER  Data in the active table
                       changed by someone else.
"ENDCYCLE"*     AFTER  End of a complete event
                       cycle.

SHOWDIALOG TRIGGERS

  Trigger    Class    Action
  ÄÄÄÄÄÄÄÄÄ  ÄÄÄÄÄÄ   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  "UPDATE"   Before   Attempting to assign the
                      expression value of a
                      control to its variable.

  "DEPART"   Before   Attempting to move off a
                      control.

  "SELECT"   Before   Attempting to select a
                      Picklist item.  (Spacebar
                      or mouse doubleclick).

  "ACCEPT"   Before   Attempting to accept a
                      dialog.

  "CANCEL"   Before   Attempting to cancel a
                      dialog.

  "ARRIVE"   After    Upon arriving on a new
                      control.

  "OPEN"     After    Upon opening a dialog,
                      before it is shown.
  "CLOSE"    After    Upon closing a dialog.


Error Codes
ÄÄÄÄÄÄÄÄÄÄÄ

    *  () returns the name of the
       user who locked the resource.
    ** Do not invoke a designated .

    0   No error.

 File/Directory
    1   Drive not ready.
    2   Directory not found.
    3*  Table in use by another user.
    4*  Full lock placed on table by another
        user.
    5   File not found.
    6   File corrupted.
    7   Index file corrupted.
    8   Object version mismatch.
    9** Record locked by another user.
   10   Directory in use by another user.
   11*  Directory is private directory of
        another user.
   12   No access to directory at operating
        system level.
   13   Index inconsistent with sort order.
   14   Multiuser access denied.
   15   PARADOX.NET file conflict.

 General Script Errors
   20   Invalid context for operation.
   21   Insufficient password rights.
   22   Table is write protected.
   23   Invalid field value.
   24   Obsolete procedure library.
   25   Insufficient image rights.
   26   Invalid PAL context.
   27   Operation not completed.
   28   Too many nested closed procedures.
   29   Table is remote.

 Argument Errors
   30   Data type mismatch.
   31   Argument out of range.
   32   Wrong number of arguments.
   33   Invalid argument.
   34   Variable or procedure not assigned.
   35   Invalid menu selection.
   36   Setretryperiod exceeded.  (Valid in 3.5
        and earlier only.)
   37   Nested expression too complex.

 Resource Errors
   40** Not enough memory to complete operation.
   41   Not enough disk space to complete
        operation.
   42** Not enough stack space to complete
        operation.
   43   Printer not ready.
   44   Low memory warning.

 Record-Oriented Operation Errors
   50** Record was deleted by another user.
   51** Record was changed by another user.
   52** Record was inserted by another user.
   53** Record with that key already exists.
   54** Record or table was not locked.
   55** Record is already locked by you.
   56** Lookup key not found.
   57** Record and group lock dependencies on
        this table lock.

 Multitable Operation Errors
   60   Referential integrity check.
   61   Invalid multitable form.
   62** Form locked.
   63   Link locked.
   64   Group locks applied to table with
        different key.
   65   Group of records locked.
   66   Cannot read file due to incompatible
        file version.

 Sql Link Errors
 1000  General SQL error, use ()
       to return the error.
 1001  Network error.
 1002  Deadlock on server.
 1003  User abort [Ctrl+Break].
 1004  Not enough memory to complete operation.
 1005  Communication error.
 1006  Connection failed.
 1007  Insufficient access privileges or
       incompatible locks.
 1008  Object already exists.
 1009  Object name invalid.
 1010  General create error.
 1011  Database or disk full.
 1012  Object does not exist.
 1013  Column type or usage invalid.
 1014  Remote key violations (SQL..ENDSQL only).
 1015  Syntax error (SQL..ENDSQL only).
 1016  Copy failed.
 1017  Number of authorized users exceeded.
 1018  Replica inconsistent with remote table.

     See: .

 **********************************************
  Miscellaneous Paradox/PAL Topics of Interest
 **********************************************


ASCII Chart                       See: .
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

    ³  0 (Cannot be recognized by PAL)      ³
    ³  1   ³ 52 4  ³103 g  ³154 š  ³205 Í  ³
    ³  2   ³ 53 5  ³104 h  ³155 ›  ³206 Î  ³
    ³  3   ³ 54 6  ³105 i  ³156 œ  ³207 Ï  ³
    ³  4   ³ 55 7  ³106 j  ³157   ³208 Ð  ³
    ³  5   ³ 56 8  ³107 k  ³158 ž  ³209 Ñ  ³
    ³  6   ³ 57 9  ³108 l  ³159 Ÿ  ³210 Ò  ³
    ³  7
  ³ 58 :  ³109 m  ³160    ³211 Ó  ³
    ³  8   ³ 59 ;  ³110 n  ³161 ¡  ³212 Ô  ³
    ³  9 ^I ³ 60 <<  ³111 o  ³162 ¢  ³213 Õ  ³
    ³ 10 ^J ³ 61  = ³112 p  ³163 £  ³214 Ö  ³
    ³ 11 ^K ³ 62 >>  ³113 q  ³164 ¤  ³215 ×  ³
    ³ 12 ^L ³ 63 ?  ³114 r  ³165 ¥  ³216 Ø  ³
    ³ 13 ^M ³ 64 @  ³115 s  ³166 ¦  ³217 Ù  ³
    ³ 14    ³ 65 A  ³116 t  ³167 §  ³218 Ú  ³
    ³ 15 ^O ³ 66 B  ³117 u  ³168 ¨  ³219 Û  ³
    ³ 16   ³ 67 C  ³118 v  ³169 ©  ³220 Ü  ³
    ³ 17   ³ 68 D  ³119 w  ³170 ª  ³221 Ý  ³
    ³ 18   ³ 69 E  ³120 x  ³171 «  ³222 Þ  ³
    ³ 19   ³ 70 F  ³121 y  ³172 ¬  ³223 ß  ³
    ³ 20   ³ 71 G  ³122 z  ³173 ­  ³224 à  ³
    ³ 21   ³ 72 H  ³123 {  ³174 ®  ³225 á  ³
    ³ 22   ³ 73 I  ³124 |  ³175 ¯  ³226 â  ³
    ³ 23   ³ 74 J  ³125 }  ³176 °  ³227 ã  ³
    ³ 24   ³ 75 K  ³126 ~~  ³177 ±  ³228 ä  ³
    ³ 25   ³ 76 L  ³127   ³178 ²  ³229 å  ³
    ³ 26 ^z ³ 77 M  ³128 €  ³179 ³  ³230 æ  ³
    ³ 27   ³ 78 N  ³129   ³180 ´  ³231 ç  ³
    ³ 28   ³ 79 O  ³130 ‚  ³181 µ  ³232 è  ³
    ³ 29   ³ 80 P  ³131 ƒ  ³182 ¶  ³233 é  ³
    ³ 30 -  ³ 81 Q  ³132 „  ³183 ·  ³234 ê  ³
    ³ 31    ³ 82 R  ³133 …  ³184 ¸  ³235 ë  ³
    ³ 32    ³ 83 S  ³134 †  ³185 ¹  ³236 ì  ³
    ³ 33 !  ³ 84 T  ³135 ‡  ³186 º  ³237 í  ³
    ³ 34 "  ³ 85 U  ³136 ˆ  ³187 »  ³238 î  ³
    ³ 35 #  ³ 86 V  ³137 ‰  ³188 ¼  ³239 ï  ³
    ³ 36 $  ³ 87 W  ³138 Š  ³189 ½  ³240 ð  ³
    ³ 37 %  ³ 88 X  ³139 ‹  ³190 ¾  ³241 ñ  ³
    ³ 38 &  ³ 89 Y  ³140 Œ  ³191 ¿  ³242 ò  ³
    ³ 39 '  ³ 90 Z  ³141   ³192 À  ³243 ó  ³
    ³ 40 (  ³ 91 [  ³142 Ž  ³193 Á  ³244 ô  ³
    ³ 41 )  ³ 92 \  ³143   ³194   ³245 õ  ³
    ³ 42 *  ³ 93 ]  ³144   ³195 à  ³246 ö  ³
    ³ 43 +  ³ 94 ^  ³145 ‘  ³196 Ä  ³247 ÷  ³
    ³ 44 ,  ³ 95 _  ³146 ’  ³197 Å  ³248 ø  ³
    ³ 45 -  ³ 96 `  ³147 “  ³198 Æ  ³249 ù  ³
    ³ 46 .  ³ 97 a  ³148 ”  ³199 Ç  ³250 ú  ³
    ³ 47 /  ³ 98 b  ³149 •  ³200 È  ³251 û  ³
    ³ 48 0  ³ 99 c  ³150 –  ³201 É  ³252 ü  ³
    ³ 49 1  ³100 d  ³151 —  ³202 Ê  ³253 ý  ³
    ³ 50 2  ³101 e  ³152 ˜  ³203 Ë  ³254 þ  ³
    ³ 51 3  ³102 f  ³153 ™  ³204 Ì  ³255    ³



Screen Attributes
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  A screen attribute consists of a combination
  of a background color and a foreground color.
  There are 128 attribute numbers that you can
  set with the  and