Patrick,
>We have several legacy Clipper applications that have been converted to
>xBase++, and we are trying to address a problem where users are able to
>press Escape to bypass the VALID (postblock). We found the above
>referenced PDR in the KB, but this issue has apparently been open for a
>very long time.
I'm not sure if this PDR applies to your issue or not. The issue described
in this PDR is simply the fact that the GetActive():Original value changes
to the same value as the GetActive():Buffer value, when data is entered, and
doesn't keep its "Original" value.
The fact that the ESC key will always cancel a Read -- while ignoring and
not executing the Valid clause -- is the same behavior as you will get in
Clipper. So I'm not quite sure what your actual issue is.
>We're wondering what others have done to address this issue. We
>considered modifying GetReader in GetSys.prg (possibly to use :Cargo),
>but that seemed drastic and we weren't sure how to link the application
>to replace the default GetSys.
I'm not sure if you want to change the GetReader in the "GetSys.prg" file,
but if you do, simply do the following in the "\Source\Runtime\Sys\"
directory:
PBuild Project.xpj
Then copy the file: "\Source\Runtime\Sys\Lib\XppSys.dll" into your Runtime
and Lib directories and "\Source\Runtime\Sys\Lib\XppSys.lib" in the Lib
directory. You may want to keep a copy of any modified and created files
in a separate location, though, as updating to a newer (or restoring an
older) Xbase++ version will eradicate those files and any changes you may
have made.
If you still use Xbase++ 1.9 (or earlier), then the "GetSys.prg" file will
be in the "\XppW32\Source\Sys\" directory, while the corresponding Project
file will be here: "\XppW32\Source\DLL\Project.xpj". The resulting DLL and
LIB files will be in the "\XppW32\Source\DLL\Lib" directory.
Hope that helps,
Andreas
Andreas Gehrs-Pahl
Absolute Software, LLC
phone: (989) 723-9927
email: Andreas.GP@Charter.net
web: http://www.Aerospace-History.net