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 |