Hit Enter or Rt Mouse to open article--Reader to run .PRG
WINTITLE
XRETURN
EFOXDIR
oFMDIR
nOLDPATH
.FOXDRIVE
FM_LOCAT
aRTSLASH
eISSUEDATE
ARTICLES
PRJFILE
lNEWPATH
OLDDEF
RTMICKEY
PROJFILE
PATHz
ARTICLE FILE NOT FOUND
WINTITLE
LPRINTER
EOUT_FILE
oXRETURN
nFOXDIR
eFMDIR
.OLDPATH
LOCAT
aFOXDRIVE
eFM_LOCAT
RTSLASH
ISSUEDATE
ARTICLES
PRJFILE
WPRINTER
_Q0Y0RQKKT
HEREIAM
BROWWHEN
BROWVAL
READER
IMPULSE
SHOWGETS
ERRORPRG
CHOICEWHEN
READVALID
EXECUTEFIL
RTMOUSE
PRINTFILE
SETDEF
d:\fox2\xfm\
fm_setup
<<*>>
<<*>>
FILENAME
CRLF
* DOSB_SELEC
BACKFILE
DFM_SETUP
FILENAME
EXAMINFILE
_QD00LGWJ6_QD00LGWM3
TALKz
COMPATIBLEz
READBORDERz
editwind
EDITWIND
EDITWIND.PJX
EDITWIND
EDITWIND.SCX
EDITWIND
EDITWIND.MNX
EDITWIND
EDITWIND.PRG
EDITWIND
EDITWIND.FRX
EDITWIND
EDITWIND.QPR
MS Sans Serif
editwind
editwind
SET READBORDER &rborder
CURRAREA
6TALKSTAT
3COMPSTAT
NRBORDER
SEDITWIND
TALKz
COMPATIBLEz
editwind
EDITWIND
EDITWIND.PJX
EDITWIND
EDITWIND.SCX
EDITWIND
EDITWIND.MNX
EDITWIND
EDITWIND.PRG
EDITWIND
EDITWIND.FRX
EDITWIND
EDITWIND.QPR
editwind
editwind
CURRAREA
6TALKSTAT
3COMPSTAT
NEDITWIND
S_QD00LGWJ6
_QD00LGWM3
articles
articles
FOXMASTDIRFM_LOCAT
ESB_SELEC
eDIST
STDIRISSUEDATE
ARTICLES
ISSUE
FFFM_ALEN
FM_ISSUE
FM_setup.DBF
FM_setup
foxtools.fll
GetProfileString
CCC@CI
FoxMasters
FMPATH
C:\FM
FM_setup.DBF
FM_setup
PATHSET
FMHOME
qFM_BASE
SB_SELEC
FM_SETUP
LOCATION
GETPROFSTRREGFN
ASECTION
DEFAULT
FM_HOME
MAXSIZE
CALLFN
PATHCHEC
pathz
PATH2CHECKOLDPATH
CKNEWPATH
FM_LOCAT
PATHCHEC
FM_LOCAT
FM_LOCOR
ALT-F2
DO D:\FOX2\SPY_CAM with "SWAP", "ALT-F2", "HELP", SYS(12), SYS(23), SYS(24), SYS(1001), SYS(1016), PROGRAM(), LINENO(), ALIAS(), RECNO(), ORDER()
TALKz
{ALT+M}
__FIRST
cFOXDIR
serFMDIR
on OLDPATH
HOMERESOURTALKSTAT
aISSUEDATE
HOMEDIR
FM_BASE
isEDITNAME
this F2
FM_LOCAT
FM_SETUP
POPUP
FM_SETUP
\<File
Create, open, save, print files or quit FoxPro
ALT+F
\<Edit
Edit text or manipulate OLE objects
ALT+E
Fox\<Masters
ALT+M
ALT+M
\<Database
Perform operations on tables, print reports and labels
ALT+D
\<Record
Perform operations on records in active table
ALT+R
\<Program
Debug, run, compile, generate and document programs
ALT+P
\<Window
Manipulate windows, display Command and View windows
ALT+W
\<Help
Access information for learning and using FoxPro
ALT+H
\<New...
Create a new file
\<Open...
Open an existing file
\<Close
Close the frontmost file
Close All
Close all files
\<Save
Save the current file
Sa\<ve As...
Save the current file with a new name
\<Revert
Revert to last saved version of file
Pr\<int Setup...
Specify printer and print options
\<Print...
Print text file, contents of the Command window or clipboard
E\<xit
Exit FoxPro
\<Undo
Reverse the most recent edit action
CTRL+Z
Ctrl+Z
\<Redo
Repeat the action previously reversed with Undo
CTRL+R
Ctrl+R
Cu\<t
Remove selection and put it on the clipboard
CTRL+X
Ctrl+X
\<Copy
Copy selection and put it on the clipboard
CTRL+C
Ctrl+C
\<Paste
Paste contents of the clipboard at the insertion point
CTRL+V
Ctrl+V
Paste \<Special...
Establish link to copied data
Clear
Erase selection
\<Insert Object...
Embed an object into a general field
\<Object...
Activate OLE object
Change Lin\<k...
View or update object link
Con\<vert To Static
Turn linked or embedded object into static picture
Select \<All
Select all lines of text or objects in current window
CTRL+A
Ctrl+A
Goto \<Line...
Move cursor to designated line number
\<Find...
Search for text
CTRL+F
Ctrl+F
Find A\<gain
Repeat the last text search
CTRL+G
Ctrl+G
R\<eplace And Find Again
Replace text and continue search
CTRL+E
Ctrl+E
Replace All
Replace all occurrences of the specified text
Prefere\<nces...
Establish edit settings
\<Table of Contents
\<Editorial
E\<ntertainment
About Fox\<Masters
FM \<Setup
\<Unload
DO _qd015bdcv IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
DO _qd015bdf1 IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
POPTRIS
DO _qd015bdlw IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
Subscription Information
Writer's Guidelines
Masthead Information
DO _qd015bdsn IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
DO _qd015bdul IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
DO _qd015bdwm IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
\<Select Issue Date
\<Auto Menu Activation
DO _qd015be2s IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
DO _qd015be4p IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
\<Unload FM From Memory
\<Delete FM Articles
DO _qd015beav IN LOCFILE("E:\WINFM\FPWMENU" ,"MPX;MPR|FXP;PRG" ,"Where is FPWMENU?")
do remove
Set\<up...
Establish settings for table in the current work area
\<Browse
Examine and/or edit active table
\<Append From...
Add records from another table
\<Copy To...
Copy contents of a table to a new file
\<Sort...
Sort a table
\<Total...
Compute totals for numeric fields
A\<verage...
Compute the average for numeric fields
C\<ount...
Count the number of table records
Su\<m...
Calculate the sum of numeric fields
Calculat\<e...
Perform statistical operations
\<Report...
Display and print reports
\<Label...
Display and print labels
\<Pack
Permanently remove records marked for deletion
Reinde\<x
Rebuild active index files
\<Append
Add a new record
Chang\<e
Edit table records
\<Goto...
Go to a specific record
\<Locate...
Look for the record that matches a specified condition
\<Continue
Continue to locate records
CTRL+K
Ctrl+K
\<Seek...
Search an indexed table
Re\<place...
Update field information in a table
\<Delete...
Mark records for deletion
\<Recall...
Unmark records that are marked for deletion
\<Do...
Run a program
CTRL+D
Ctrl+D
\<Cancel
Stop running a program
\<Resume
Resume suspended program
CTRL+M
Ctrl+M
De\<bug
Display Debug window
\<Trace
Display Trace window
Co\<mpile...
Compile specified program
Ge\<nerate...
Generate code for screens or menus
M\<acros...
Define custom keyboard shortcuts
Beauti\<fy...
Beautify a program
Fo\<xDoc
Document programs
\<Hide
Remove active window from sight
Hide All
Remove all windows from sight
Sh\<ow All
Show all hidden windows
Clea\<r
Clear current output window
\<Cycle
Rearrange open windows to bring successive ones forward
CTRL+F1
Ctrl+F1
Co\<mmand
Display Command window
CTRL+F2
Ctrl+F2
\<View
Display the View window
\<Contents
Display help contents
\<Search for Help on...
Search for help topic by typing or selecting a keyword
\<How to Use Help
Display instructions for using help
\<About FoxPro...
Display information about FoxPro and the system configuration
Ca\<lculator
Perform calculations
Calendar/D\<iary
Check dates and keep track of appointments
\<Filer
Manage files and directories
Pu\<zzle
Solve a puzzle
FM_SETUP
C_QD015BC3AFOXMASTERSENTERTAINMABOUTFOXMAFMSETUP
RSUNLOAD
ERSTALKSTAT
FM_SETUP
ARTICLES.DBF
ARTICLES
titles
ftitles
art.prg
The file ARTICLES.DBF is not found
FM_HOMEDIRALL
15BC3AARTLOC
ERSFM_LOCAT
RSB_SELEC
RISSUE
EDIRFM_SETUP
SISSUEDATE
RTSLASH
TITLES
DIRFTITLES
EDITORIA.TXT
EDITORIA
EDITORIAL VOL 2 NUM 0
MODI FILE &editname NOEDIT wind EDITORIA SAVE
EDITORIAL NOT AVAILABLE
FM_HOMEDIRFM_LOCAT
REDITNAME
REDITORIA
TALKz
TALKSTAT
RFM_HOMEDIRFM_LOCAT
RPOPTRIS
SUBSCRIPT.TXT
SUBSCRIPT
SUBSCRIPTION INFORMATION
MODI FILE &editname NOEDIT wind subscript SAVE
SUBSCRIPTION INFORMATION NOT AVAILABLE
FM_HOMEDIRFM_LOCAT
REDITNAME
RSUBSCRIPT
guide.txt
GUIDELINE
Writers Guidelines
MODI file &editname NOEDIT wind GUIDELINE SAVE
WRITERS GUIDELINES NOT AVAILABLE
FM_HOMEDIRFM_LOCAT
REDITNAME
RGUIDELINE
INFO.TXT
MASTHEAD INFORMATION
MODI FILE &editname NOEDIT wind INFO SAVE
MASTHEAD INFORMATION NOT AVAILABLE
FM_HOMEDIRFM_LOCAT
REDITNAME
RINFO
setup.prg
FM_LOCAT
RSETUP
Automatically Activate FoxMasters Menu?
fm_setup
LRESULT
RSB_GETYN
RFM_LOCAT
RSB_SELEC
RFM_BASE
FM_SETUP
RPOPUP
DO YOU WISH TO UNLOAD FoxMasters?
FM_LOCAT
RSB_GETYN
R__FIRST
R_QD015BDCV
_QD015BDF1
_QD015BDLW
_QD015BDSN
_QD015BDUL
_QD015BDWM
_QD015BE2S
_QD015BE4P
_QD015BEAV
FoxMasters Writer's Guidelines
Bruce Braunstein Editor
FoxMasters is a new publication for FoxPro 2.5 programmers and users. It is a magazine on a disk, geared for an intermediate to advanced level of expertise. It covers FoxPro programming in depth as well as all aspects of the X-Base community. Specifically we will include reviews of books, seminars, and hardware insofar as they relate to the FoxPro developer.
The prime emphasis on articles will be on actual code examples and tools that can be directly bolted into applications.
Not only are we interested in application programs--we are looking for techniques that can be incorporated by our readers into their own programs. These Bolt-ons should work without having our readers change their coding techniques to make use of the samples provided. Therefore they should be as self contained as possible leaving their environment restored as it was before the program executes.
The programs can cover anything from the Screen Builder, Menu Builder and the other power tools, to the API and coding techniques in general. Also we are interested in articles that can be incorporated into Tom Rettig's office environment and other third party application programs as well.
The format for submission is as follows:
Any code submitted should be thoroughly tested and debugged. It should run under FoxPro 2.5 and should include source code. All the files that are necessary for the program to run should be included. These can include the screen, menu, and application files as well as any CONFIG.FP or resource files necessary. These should all be included in a Project file. The text of the article should also be listed in the project file as a "File" type and it should be given an ".ART" extension--to designate it as an article.
You can assume the presence of the sample datafiles that come with FoxPro. These are located underneath the FoxPro directory. If your sample code can make use of these files you can use them directly in your application without having to rebuild your own.
The code should be no more than 60 characters across. The the text of the article should be in ASCII and have CR LF's only at the end of paragraphs so the text may be read and reformatted in a FoxPro window without having it break in the wrong places. See the sample program, written in FoxPro that will strip out the extra CR/LF from the end of lines.
The code should save and restore the environment upon exit. Memory variables, windows, views should be saved and restored. The sample programs should not trash the existing environment.
The articles copyright will be retained by the individual authors, but FoxMasters is assigned the World Wide non-exclusive rights to reproduce, reprint and translate them into in any publishing format, be it electronic or print. At this time FoxMasters pays no honoraria for articles. The code that is published in FoxMasters may be freely incorporated into people's applications without violating copyrights.
Articles should be submitted via CompuServe. All related files should be ZIPPED into one file and then sent as a binary file with error correction protocols. It should be sent to 74007,2011
Att: Bruce Braunstein, Editor.
1015 Gayley #288
Los Angeles, CA 90024
(213) 281-7533
All articles should be queried in advance.
Execute article from Reader pad of main menu
Open article with Right Mouse or Enter key
Select article with Left Mouse or Arrow keys
WINFM\FPA
NU.MNX
FoxMasters is a Trademark of Tetra Press
(C) Copyright 1992 Tetra Press All Rights Reserved Vol1_Num2 (213) 281-7533
The numeric code of the number provided by ERROR()
FF
The error message provided by MESSAGE()
The contents of the line of code which
triggered the error as provided by MESSAGE(1)
The name of the code module, SYS(16)
The line number of code triggering the error, LINENO()
FF
Current PRINTER setting as per SYS(102)
Current CONSOLE setting as per SYS(100)
Current DEVICE setting as per SYS(101)
PROGRAM STATUS
--------------
PROGRAM MEMORY
--------------
Error Report Is Complete.
XERNO
XKODE
XMODUL
XLINE
.ARXPRINT
XKONSOL
XDEVICE
FE_SPS
UE_DIS_DT
ERR_PRN
ERR_OPT
err_box
err_opt
ERR_BOX
ERR_MENU
ERR_OPT
SET TALK &e_talk
SET PRINT &e_print
SET PRINTER TO &e_printer
SET DEVICE TO &e_screen
SET CURSOR &e_cursor
SET CURSOR &e_bell
SET CONSOLE &e_console
XERNO
XKODE
XLINE
XPRINT
.ARXKONSOL
XDEVICE
KEYPRESS
FCURR_DBF
UGETFIELD
DEF_DRIVE
RUN_MEMRY
PRNT_DEVICCUR_DIREC
TOP_WIN
XLOCKED
ENXMISSING
rERR_CALL
ERR_TITLE
E_LINE1
E_LINE2
RTE_LINE3
E_LINE4
YE_LINE5
E_LINE6
s.E_LINE7
E_LINE8
E_LINE9
E_LINE10
AE_TALK
E_PRINT
E_PRINTER
E_SCREEN
E_CURSOR
E_BELL
E_CONSOLE
ERR_OPT
ERR_STYLE
WHICH1
WHICH2
M_CALL
M_TITLE
UMM_PHONE
ERR_CLINE
ERR_TEMP
sb_err
View=Enter, EXIT=Escape, Ctrl-End=EXIT TO DOS
PRESS Escape TO EXIT
CLOCKz
enter
DO err_memo
ESCAPE
KEYBOARD CHR(23)
ctrl+END
DO err_quit
SET CLOCK &clockset
sb_err
DO_IT
SCHEME10
CURS_SET
SF2KEY
SF9KEY
.ARCQKEY
ESCKEY
ESCSTAT
FTTITLE
UCLOCKSET
SB_ERR
BROWIN
MEMWIN
VICENTER
ESCAPE
ENEND
rSB_CLOSE
ERR_SET
ERR_BELL
ERR_MEMO
ERR_SAVE
ERR_QUIT
ERR_RPT
ERR_WIN
ERR_SETS
ERR_VIEW
*H Yes;\?\!No
AMMSG
AMMSG1
fAMMSG2
AMMENU
6AMYESWIN
MPROMPTS
CHOICE
CLEARIT
qRET_VAL
SB_GETYN
CLEARIT
CASE USED("&new_alias") .AND. !EMPTY(new_alias)
CASE USED("&dbf_name")
IF FILE("&temp_name")
FILE,
NOT FOUND!
ENDIF FILE("&temp_name")
IF FILE("&temp_name")
ALIAS
ALIAS
FILE,
NOT FOUND!
ENDIF FILE("&temp_name")
LOCATION
DBF_NAME
fIDX_NAME
NEW_ALIAS
MODIFYER
RET_VAL
TEMP_NAME
SB_SELEC
qSB_CLOSE
T_FILE
qSB_SELEC
TALKz
COMPATIBLEz
issuedate
ISSUE DATE
articles
issuedate
issuedate
designated by their
@ 1,6 GET result PICTURE "@&T" FROM issue SIZE 7,17 DEFAULT 1 COLOR SCHEME 2
Select the issue you wish
to Read. Issues are
Volumne and issue number
issuedate
ISSUE
CURRAREA
TALKSTAT
COMPSTAT
ISSUEDATE
FM_HOME
FM_LOCAT
SB_SELEC
RESULT
FM_ISSUE
FM_SETUP
STEPz
ECHOz
TALKz
ALT-F2
NOHELP
fullpathz
escapez
DO spy_f1 WITH PROMPT(), PROGRAM()
ENTER = Select Option * ESCAPE = Return To Program
SPY_CAM(tm) Ver F2.0
Copyright (c)1991
Software Blueprints
Open .DBF's
FoxPro Filer
Call Stack
Break Point
Edit Program
Display Memory
Display Status
Spy Report
Redirect Print
Video Mode
Sysmenu On/Off
Status On/Off
Suspend
Trace On/Off
Step On/Off
System Help
Mem Utilization
FoxPro Version
Shell To DOS
Quit To DOS
DO spy_act WITH BAR()
SPY_ERRW
SET TALK &spy_talk
SET FULLPATH &spy_path
SET ESCAPE &spy_esc
spy_*
SPY_SWAP
ySPY_KEY
SPY_HELP
SPY_AVAIL
SPY_RESER
SPY_CONFI
SPY_POOL
SPY_USED
aSPY_PROG
uSPY_LINE
FSPY_ALIAS
SPY_RECNO
SPY_ORDER
SPY_TALK
SPY_NORMALSPY_STEP
LSPY_ECHO
SPY_PATH
SPY_ESC
SPY_ERR
SPY_WIN1
SPY_MEN1
USPY_ERRW
Enter Changes To Memory Variable
Array Editing Is Not Enabled.
Memo Editing Is Not Enabled.
CASE EMPTY(&spy_mem(spy_item,1))
Empty Variable Editing Is Not Enabled.
STORE LEN(&spy_mem(spy_item,1)) TO spy_base
PICTURE "@S40"
@ 01,06 GET &spy_pic
ENTER = Edit Memory * ESCAPE = Return To Display Memory
SPY_ITEM
ySPY_MEM
SPY_HELP
SPY_MEMW
SPY_NULL
SPY_BASE
SPY_PIC
SPY_LT
aSPY_RT
* F
F
9,999,999c
9,999,999c
ENTER = Closer Look At File * ESCAPE = Return To SPY_CAM Control Panel
OPEN .DBF'S
Sel # Alias Recno() Rcount() Index
DO spy_fpop WITH BAR()
ESCAPE = Return To SPY_CAM Control Panel
ESCAPEz
No Files Are Currently Selected.
SET ESCAPE &spy_esc
ENTER = Select Option * ESCAPE = Return To Program
SPY_WAS_ALSPY_MEN2
SPY_FILE
SPY_FCNT
SPY_FOR
SPY_RECNO
SPY_RECCNTSPY_HELP
TSPY_WIN2
uSPY_F_PICKSPY_P_CNT
SPY_ESC
ENTER = Browse Field * ESCAPE = File Options Menu
Structure Menu Is Being Constructed.
DO spy_brow WITH TRIM(SUBSTR(PROMPT(),2,10))
FILE STRUCTURE
ENTER = Select Option * ESCAPE = Return To List of Files
SPY_HELP
LSPY_STRW
SPY_STRCNTSPY_STRU
TSPY_FIELD
SPY_FILE
Open .DBF's
spy_f102
SPY_STRU
Structure
spy_f103
SPY_FED
Edit File
spy_f104
SPY_FBRO
Browse File
spy_f105
SPY_IDX
Indexes
spy_f106
SPY_FILR
FoxPro Filer
spy_f107
SPY_CALL
Call Stack
spy_f108
SPY_BRK
Break Point
spy_f109
SPY_EDIT
Edit Program
spy_f110
SPY_DMEM
Display Memory
spy_f111
SPY_STAT
Display Status
spy_f112
SPY_RPT
Spy Report
spy_f113
SPY_PRN
Redirect Print
spy_f101
SPY_VIDO
Video Mode
spy_f114
SPY_SYSM
Sysmenu On/Off
spy_f115
SPY_LINE
Status On/Off
spy_f116
SPY_SUSP
Suspend
spy_f117
SPY_TRAC
Trace On/Off
spy_f118
SPY_STEP
Step On/Off
spy_f119
SPY_SHLP
System Help
spy_f120
SPY_SMEM
Mem Utilization
spy_f121
SPY_VER
FoxPro Version
spy_f122
SPY_DOS
Shell To DOS
spy_f123
SPY_QUIT
Quit To DOS
spy_f124
DO spy_f1 WITH PROMPT(), PROGRAM()
SPY_PROMPTSPY_PRG
_PROMPTSPY_F1DO
Memory Display Is Being Constructed.
ENTER = Edit Memory Variables * ESCAPE = Return To SPY_CAM Control Panel
enter
DO spy_memr
DISPLAY MEMORY
enter
ENTER = Select Option * ESCAPE = Return To Program
SPY_MEMW
TSPY_NAME
SPY_HELP
TENTER
TSPY_WIN2
ESCAPE = Return To SPY_CAM Control Panel
CURSORz
ON..F
Line
BREAK POINT
Line
BREAK POINT
Line FF
SET CURSOR &spy_curs
ENTER = Select Option * ESCAPE = Return To Program
Feature Not Available In Command Mode.
SPY_NORMALSPY_HELP
SPY_CURS
TSPY_NUM
TSPY_LEVEL
SPY_PRG
SPY_GO
NTSPY_STOP
TSPY_PROG
uSPY_LINE
KSPY_POS
SPY_WIN2
LSPY_NULL
SPY_HOLD
SPY_CHOICESPY_MEN1
SPY_FILE
ESPY_FILR
ESPY_CALL
ESPY_BRK
CESPY_EDIT
ESPY_DMEM
ESPY_STAT
ESPY_RPT
CESPY_PRN
CESPY_VIDO
ESPY_SYSM
ESPY_LINE
ESPY_SUSP
ESPY_TRAC
ESPY_STEP
ESPY_SHLP
ESPY_SMEM
ESPY_VER
CESPY_DOS
Now Printing Intelligence Report, Do Not Disturb
Printer Is Not Ready.
Now Printing Intelligence Report.
PRINTz
SPY_CAM INTELLIGENCE REPORT
***************************
DATE FF$
FF$o
TIME Fb
PROGRAM BREAK POINT
-------------------
ON..F
Line
PROGRAM F
LINE FF
PROGRAM F
FILE F
LINE FF
PROGRAM CALL STACK
------------------
MEMORY STATUS
-------------
Memory pool available for use
99,999,999
Memory pool used up
99,999,999
FoxPro memory pool
99,999,999
EMS reserved by FoxPro
99,999,999
EMS limit per CONFIG.FP
99,999,999
Available for RUN or ! command
99,999,999
VERSION NUMBER
--------------
PROGRAM STATUS
--------------
PROGRAM MEMORY
--------------
ESCAPEz
ESCAPE = Return To SPY_CAM Control Panel
Intelligence Report Is Complete.
SET ESCAPE &spy_esc
SET PRINT &spy_prn
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
ESPY_HOLD
SPY_PRN
ESPY_NORMALSPY_NUM
ESPY_LEVEL
SPY_PRG
SPY_GO
ESPY_STOP
ESPY_PROG
ESPY_LINE
ESPY_POS
ESPY_HIST
ESPY_CNT
ESPY_CALL
ESPY_POOL
ESPY_USED
ESPY_RESER
SPY_CONFI
SPY_AVAIL
SPY_ESC
ESCAPE = File Structure
BROWSE FIELDS &spy_fld WINDOW spy_winb
ENTER = Browse Field * ESCAPE = File Options Menu
SPY_FLD
ESPY_WIDE
SPY_POS
ESPY_HELP
LSPY_WINB
CURSORz
**************************************
* *
* Type "EXIT" To Return *
* *
**************************************
FOXSWAP COMMAND
COMMAND
SET CURSOR &spy_curs
SPY_CURS
ESPY_SCRN
SPY_SWAP
ESPY_WIN1
ALT-E = Edit Menu * CTRL-W = Save Changes * ESCAPE = Exit w/o Save
Program Edit Is Being Prepared.
SYSMENUz
ON..F
SET SYSMENU &spy_sys
ENTER = Select Option * ESCAPE = Return To Program
Feature Not Available In Command Mode.
SPY_NORMALSPY_HELP
SPY_HOLD
ESPY_SYS
LSPY_NUM
ESPY_LEVEL
SPY_PRG
SPY_GO
ESPY_STOP
ESPY_SIZE
ESPY_HANDLESPY_DOWN
ESPY_LINE
ESPY_TEMP
ESPY_WINE
ESPY_NULL
FFFF-
^D@FFFHd@
ERROR TRAPPED
SPY_TONE
LSPY_ERRW
SPY_FPICK
SPY_STRU
SPY_FED
SPY_FBRO
SPY_IDX
ESCAPE = File Options Menu
ENTER = Select Option * ESCAPE = Return To List of Files
SPY_HELP
SPY_WINE
ESCAPE = File Options Menu
ENTER = Select Option * ESCAPE = Return To List of Files
SPY_HELP
SPY_WINE
ESCAPE = Return To SPY_CAM Control Panel
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
ENTER = Select Option * ESCAPE = Return To List of Files
Structure
Edit File
Browse File
Indexes
DO spy_fact WITH BAR()
.DBF OPTIONS
ENTER = Closer Look At File * ESCAPE = Return To SPY_CAM Control Panel
SPY_PICK
SPY_HELP
SPY_FILE
SPY_BOF
SPY_EOF
SPY_WAS_RCSPY_FMEN
SPY_WIN3
SPY_H_MSG
SPY_HELP
SPY_H_POS
Hot Keys Are Being Saved.
ON KEY LABEL hot keys:
On Error:
ON KEY LABEL hot keys:
SPY_WIN2
SPY_STATUSSPY_HANDLESPY_ACNT
SSPY_OF
SPY_TEMP
ESPY_VAR
LESPY_KCNT
= Move Window * ESCAPE = File Options Menu
fullpathz
ACTIVE INDEXES
Index Expression
cursorz
ESCAPEz
SET ESCAPE &spy_esc
SET CURSOR &spy_curs
ESCAPEz
No Indexes Are Currently Active.
SET ESCAPE &spy_esc
ENTER = Select Option * ESCAPE = Return To List of Files
SET FULLPATH &spy_full
SPY_HELP
SPY_FULL
SSPY_IARR
ESPY_ALEN
SSPY_ACNT
SPY_ICNT
ESPY_IDIS
ESPY_CURS
ESPY_FCNT
SSPY_ESC
ESPY_IMORE
SPY_NULL
SPY_PRESS
STATUSz
SHADOWSz
SET SHADOWS &spy_shad
ENTER = Select Option * ESCAPE = Return To Program
SPY_WAS_ALSPY_SCRN
SSPY_SHAD
ESPY_HELP
LSPY_WIN1
ENTER = Edit Memory * ESCAPE = Return To Display Memory Window
enter
Memory Menu Is Being Constructed.
variables defined,
variables defined,
variables defined,
DO spy_meme WITH BAR()
EDIT MEMORY
ENTER = Edit Memory Variables * ESCAPE = Return To SPY_CAM Control Panel
enter
DO spy_memr
SPY_HELP
LENTER
SSPY_MEMW
ESPY_MEMR
LSPY_HANDLESPY_FMOR
ESPY_TEMP
ESPY_SIZE
ESPY_MEM
LESPY_MCNT
ESPY_MENCNTSPY_MEMS
TSPY_LOAD
ESCAPE = Return To SPY_CAM Control Panel
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
ESCAPE = Return To SPY_CAM Control Panel
ESCAPEz
.TXTF
PRINTER
Printer Restored to Normal.
PRINTFF
PRINTFF
Printer Redirected To
SET ESCAPE &spy_esc
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
LSPY_ESC
SSPY_FNAME
SPY_OUT
ESCAPE = Return To SPY_CAM Control Panel
DISPLAY STATUS
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
LSPY_STATUSSPY_WIN2
RESUME = Return To SPY_CAM Control Panel
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
LSPY_SCRN
SSPY_WIN1
SYSMENUz
ESCAPEz
ESCAPE = Return To SPY_CAM Control Panel
System Menu Is Not Available.
SET ESCAPE &spy_esc
ESCAPEz
ESCAPE = Return To SPY_CAM Control Panel
System Menu Is Available - Use "F10" or "ALT" To Access.
SET ESCAPE &spy_esc
ENTER = Select Option * ESCAPE = Return To Program
SPY_ESC
LSPY_HELP
ESCAPE = Return To SPY_CAM Control Panel
CURSORz
FOXPRO VERSION
SET CURSOR &spy_curs
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
LSPY_CURS
SSPY_WIN2
SSPY_NULL
MESSAGEz
ESCAPEz
High Density Display Is Not Available.
SET ESCAPE &spy_esc
SPY_MSG
LSPY_ESC
Status On/Off
*************
The Status On/Off option turns the system status
line on and off.
The status line remains onscreen until it is
taken off. The screen handling with regards to
the status bar is somewhat imprecise. When the
status line is removed, it will leave a nasty
scare across the bottom of your display.
In spite of this drawback, the status line is a
valuable debugging tool when it comes to watching
for inefficient file handling. A procedure which
goes back and forth between several files in
order to be able to change record positions and
redraw the screen is ripe for optimization.
SET ALTERNATE TO &spy_f1file
DO &spy_prg
[PgUp] [PgDn] [Up] [Dn] [Esc]
MODIFY FILE &spy_f1file WINDOW spy_f1 NOEDIT
ERASE &spy_f1file
SPY_TOP
LSPY_BOT
SSPY_PRG
SSPY_F1FILESPY_F1
Redirect Print
**************
The Redirect Print option redirects all printed
output to a disk file. When output is directed
to a disk file, the option will redirect output
to the printer.
The file name to which print will be directed
is the first available file name using the
following format: PRINT###.TXT, where ### is
progressively higher numbers. Leading zeros
are not used.
When print output is redirected, the output
function works much faster, and the result
is generally just as valuable as output printed
onto paper.
Open .DBF's
***********
The Open .DBF's option is the gateway to viewing
and analyzing the open database files.
The initial display is of the currently open
database files. The display window indicates
the following:
Sel Currently selected file
# Work area number
Alias Alias name
Recno() Current record number
Rcount() Total records in database
Index Currently active index
Any of the currently open files can be selected
for further analysis. This is achieved through
a file menu. The file menu options are:
Structure
The file structure option provides a view
of the field names, field types, and field
sizes.
Selecting any field presented in the
structure display will enable a browse of
the selected field.
Edit File
The edit option presents an edit window for
viewing the database, and manipulating its
contents.
Browse File
The browse option presents a browse window
for viewing the database, and manipulating
its contents.
Indexes
The Index option displays all of the active
index file names and their index
expressions. This window is movable using
the left and right arrow keys in order to
view any portion of the index expression
not on the screen.
The file selected and the record position are
automatically returned to their original position
after the Open .DBF's option is exited.
In order to change the selected file or the
record position before returning to your
application, use the Suspend option.
In addition to file viewing, the Browse and Edit
sub-options can be utilized to make changes to
the contents of the file. These changes will be
in the file when you return to your application,
they may need to be read by your application
before they will appear on your screen.
Structure
The file structure option provides a view of
the field names, field types, and field sizes.
Selecting any field presented in the structure
display will enable a browse of the selected
field.
The field browse sub-option can be utilized to
make changes to the contents of the file.
These changes will be in the file when you
return to your application, they may need to
be read by your application before they will
appear on your screen.
Edit File
*********
The edit option presents an edit window for
viewing the database, and manipulating its
contents.
In addition to file viewing, the Browse and Edit
sub-options can be utilized to make changes to
the contents of the file. These changes will be
in the file when you return to your application,
they may need to be read by your application
before they will appear on your screen.
Browse File
***********
The browse option presents a browse window
for viewing the database, and manipulating
its contents.
In addition to file viewing, the Browse and Edit
sub-options can be utilized to make changes to
the contents of the file. These changes will be
in the file when you return to your application,
they may need to be read by your application
before they will appear on your screen.
FoxPro Filer
************
The FoxPro Filer option invokes the FoxPro Filer
program. The Filer is exited by closing the
Filer window, or by hitting ESCAPE.
The Filer program is one of the most
under-rated features of FoxPro. All good
programmers should master the Filer. There is
almost no file handling function which cannot be
achieved with the Filer program.
Call Stack
**********
The Call Stack option displays the history of
program calls which were enabled in order to
arrive at the current program break point.
Within the list of programs, procedures and
functions, you will frequently notice
references to "ON...". This refers to menu
"ON PAD", "ON KEY LABEL", and similar calls
within your program.
The Call Stack display terminates at the program
break point, references to subsequent calls
within SPY_CAM are distracting, and therefore
not included.
The Call Stack is useful for determination of
the program "genealogy". In other words,
"how did I get here?".
Break Point
***********
The Break Point option displays the name of the
program, function or procedure which was
interrupted by the call to SPY_CAM. The program
line number of the break is also displayed.
When the break point is contained in a procedure
file, the name of the procedure file is also
presented.
The break point is useful when you prefer to use
your own editor to make changes to the program.
Edit Program
************
The Edit Program option opens an edit window at
the program break point. The cursor is placed
at the end of the line which was executing at
the break point.
Unless you break an ongoing operation, you will
usually be placed on a READ, EDIT, READ MENU, or
similar "interface" command.
The FoxPro Edit menu is available by pressing
ALT-E. All of the FoxPro memo editor features
and capabilities are available.
To save the results of your program editing,
press CTRL-W, to abandon your work, press ESCAPE.
Providing you are in development mode, that is
DEVELOPMENT=ON is included in your CONFIG.FP
file, the program will be "recompiled" after
you have left your application and return.
Subsequent edits to the same program file during
one "run" may place your cursor in the wrong
position. That is, if you place a new line above
the program break, when you return to the program
within that session, your cursor will be one line
away from the actual break point.
The ability to place the cursor at the program
break point is not available when you have
defined an external editor in your CONFIG.FP file.
Display Memory
**************
The Display Memory option presents a window
containing the results of the DISPLAY MEMORY
command. The entire memory is visible using
the arrow and page keys.
The display memory option will display the
following components:
Memory Variables
Print System Memory Variables
Menu and Pad Definitions
Popup Definitions
Window Definitions
While the display memory window is active,
memory variables may be edited. Pressing ENTER
will invoke a scrolling menu of memory variables.
Selecting any variable will present an edit
window for that memory variable.
The memory display is one of the best sources of
information about the operation of your system.
To obtain a printed output of the display memory,
utilize the Spy Report option.
Display Status
**************
The Display Status option presents a window
containing results of the DISPLAY STATUS command.
The entire system status report is visible using
the arrow and page keys.
Some of the components of display status are:
Processor Type
Work Area / File Information
System Information
ON KEY Settings
SET values
The display status and display memory commands
may be printed by selecting the Spy Report
option.
Spy Report
**********
The Spy Report option prints a report which
includes the time and date of the report, and
the results of the display memory and display
status commands.
Before the report is printed, SPY_CAM will
verify the printer status. When the printer is
not available, a message window will indicate so.
You may either correct the situation, and press
any key to continue, or you may press escape to
abandon the process.
The Spy Report is an excellent tool for
gathering information from various points
within your application for comparison and
analysis.
Upon completion, a wait window with
"Intelligence Report Completed" will be
presented.
The Spy Report may be "printed" to disk through
utilization of the Redirect Print option.
Video Mode
**********
The Video Mode option will toggle your display
between regular, or 25 line display, and high
density, 43 or 50 line display. The
determination of your current display mode,
and the alternate display mode which is
available, is determined by SPY_CAM. You simply
indicate you want the video mode changed the
other one.
Hot Keys Are Being Reactivated.
ON ERROR &spy_var(1)
ON KEY LABEL &spy_var(spy_on)
SPY_WIN2
LSPY_VAR
SSPY_ON
Step Will Be Turned OFF Upon Departure.
Step Will Be Turned ON Upon Departure.
SPY_STEP
LSPY_HOLD
SSPY_NULL
Quit Program
************
The Quit Program option cancels the operation of
the program.
The prime reason for this option is to be able
to leave the program when it is caught in a
loop.
The primary use of the quit option is to leave
your application. Invoking SPY_CAM, and hitting
"Q" is usually the fastest way to leave. Lets
face it, water runs down hill for a reason.
Shell To DOS
************
The Shell To DOS option saves the current program
status and provides direct access to DOS.
The Shell To DOS option will clear the screen,
and remind you that you need to type "EXIT" at
the DOS prompt in order to return to SPY_CAM,
and subsequently your application.
Depending upon the way you set up SPY_CAM, you
may utilize FoxSwap, and have a generous amount
of your memory available for running other
programs. If FoxSwap is not selected upon
installation, you will be left with only enough
memory to perform the most basic of tasks.
While you are in DOS, you may notice a 400K file
which is the temporary file utilized by FoxPro.
It is, of course, a good idea not to modify or
delete this file. It is somewhat interesting to
look at it though.
While you are in DOS it is also a good idea not
to start up any TSR (terminate stay resident)
programs, or modify your system by loading
network drivers, etc.
It is also smart not to run any disk
optimization programs like CHKDSK, Compress,
or SpeedDisk, and never use your electric hair
dryer while you are taking a bath.
FoxPro Version
**************
The FoxPro Version option displays a window with
the FoxPro version number, its creation date,
and serial number.
Sometimes, with two versions of FoxPro, single
user and LAN, and three different models, normal,
runtime, and demonstration, and several different
creation dates, it is helpful just to be able to
ask "Where am I?".
Memory Utilization
******************
The Memory Status option presents a status
window detailing the various components of memory
and its utilization. The components
detailed are:
Memory Pool Available For Use
Memory Pool Used Up
FoxPro Memory Pool
EMS Reserved By FoxPro
EMS Limit Per CONFIG.FP
Available For RUN or ! Command
The memory amounts are "as of" the program break
point, they do not include the memory utilized
by SPY_CAM.
System Help
***********
The System Help option provides access to the
system help topical menu.
Step On/Off
***********
The Step On/Off option turns the trace window on
and off and activates the program step option.
The Step On/Off option is effective for those
situations where the other debugging tools just
aren't enough. The step option allows you to
see the operation of each and every command as
it occurs.
Trace On/Off
************
The Trace On/Off option turns the trace window
on and off.
If you haven't used the trace window, start by
using it to determine whether your program is
"caught in a loop", or has "hung". As you gain
proficiency with the trace window, you will find
it can solve many programming problems.
Suspend
*******
The Suspend option suspends program operation
to the FoxPro command window.
The command window, and the system menu, provide
access to many of the FoxPro features otherwise
not available. Chief among these is the debug
window.
Sysmenu On/Off
**************
The Sysmenu On/Off option turns the system menu
access switch on and off. An informative wait
window will inform you of the new status of the
access to the sysmenu.
Once access to the sysmenu has been turned on,
it is accessible from your application by
pressing the F10 or ALT key.
Echo Will Be Turned OFF Upon Departure.
Echo Will Be Turned ON Upon Departure.
SPY_ECHO
LSPY_HOLD
SSPY_NULL
Indexes
*******
The Index option displays all of the active
index file names and their index
expressions. This window is movable using
the left and right arrow keys in order to
view any portion of the index expression
not on the screen.
ESCAPE = Return To SPY_CAM Control Panel
CURSORz
MEMORY UTILIZATION
Memory pool available for use
99,999,999
Memory pool used up
99,999,999
FoxPro memory pool
99,999,999
EMS reserved by FoxPro
99,999,999
EMS limit per CONFIG.FP
99,999,999
Available for RUN or ! command
99,999,999
SET CURSOR &spy_curs
ENTER = Select Option * ESCAPE = Return To Program
SPY_HELP
LSPY_CURS
SSPY_WIN2
SSPY_POOL
ESPY_USED
ESPY_RESER
SPY_CONFI
SPY_AVAIL
SPY_NULL
ESCAPE = Return To SPY_CAM Control Panel
DEACTIVATE POPUP
CALL STACK
ENTER = Select Option * ESCAPE = Return To Program
Feature Not Available In Command Mode.
SPY_NORMALSPY_HIST
SSPY_HELP
SSPY_CNT
ESPY_SHOW
ESPY_H_MEN
SPY_POS
SPY_WIN2
SPY_HOLD
SPY_NULL
ESPY_MEME
SPY_FILE
SPY_STRU
SPY_F1
SPY_DMEM
SPY_BRK
SPY_ACT
SPY_RPT
SPY_BROW
SPY_DOS
olu/3
SPY_EDIT
SPY_ERR
SPY_FACT
SPY_FBRO
SPY_FED
SPY_FILR
SPY_FPOP
SPY_HELP
SPY_OFF
SPY_IDX
SPY_LINE
SPY_MEMR
SPY_SHLP
SPY_PRN
SPY_STAT
SPY_SUSP
SPY_SYSM
SPY_TONE
SPY_VER
SPY_VIDO
SPY_F116
SPY_F1DO
SPY_F101
SPY_F102
SPY_F103
SPY_F104
SPY_F105
SPY_F107
SPY_F108
SPY_F109
SPY_F110
SPY_F111
SPY_F112
SPY_F113
SPY_F114
SPY_ON
SPY_STEP
SPY_F124
SPY_F123
SPY_F122
SPY_F121
SPY_F120
SPY_F119
SPY_F118
SPY_F117
SPY_F115
SPY_TRAC
SPY_F106
SPY_SMEM
SPY_CALL
SUBSCRIPTION INFORMATION
FoxMasters is published bi-monthly on diskette for a price of $179.00 per year in the USA. SPECIAL for reader of Jeb Long's book: only $99.95 per year.
Add $30.00 outside the USA.
California Residents please add 8 1/2% sales tax.
Send to:
Tetra Press
1015 Gayley #288
Los Angeles, CA 90024
Compuserve: 74007,2011
Single issue price is $25.00. All single issue orders must be accompanied bye payment in advance. California residents please add 8 1/2% sales tax.
All Funds must be in US currency.
FoxMasters, the FoxPro Magagine on a disk is published by Tetra Press.
FoxMasters Editorial
Vol 2 Num 0 -- Jeb Long Special Edition
The Rebirth of Programming In The Spirit of Windows
Bruce Braunstein
Editor FoxMasters Magazine
1015 Gayley #288
Los Angeles, CA 90024
(800) 93-FOXPRO (310) 281-7533
FoxPro 2.5 for Windows is now here. It is a reality and it is one of those things that will take some getting used to. Switching from DOS to Windows is a greater paradigm shift than switching from CPM to DOS. But if you are used to programming in FoxPro 2.0 you are more than half way there. FoxPro for Windows extends the windowing built into that product into a true Graphical User Interface. While 2.5 will run your old code unchanged, you will most probably want to update it to take advantage of the new features of Windows.
I have just finished editing Jeb Long's book, which you have just purchased. Going through his book is one of the best ways I know of to get up to speed in FoxPro 2.5. This book differs from the others on the market in that it gives you a good insight into the language.
Jeb is one of the architects of the Xbase language and its predecessor JPLDIS. Because of his experience with the language he gives you the background to make the built in Power Tools work for you. Of course anyone can design screens with the Screen Builder, but unless you understand how that language that it generates works you will not be able to make it do anything useful.
The book includes a number of useful programs and much sample code. The main examples are from Jeb's book. These include a complete scientific calculator, a mortgage calculator, a stock market graphing program and much more. The main programs can be accessed through the main FoxMasters reader window. The smaller programs are all grouped together in the MISC sub directory.
As a FoxMasters bonus we are also including a shareware DLL for compressing text files. This will let you save greatly on disk space.
For your entertainment Tom Rombouts, who worked with Jeb and I at the Ashton Tate Development center, is including a FoxPro version of the classic computer game of Life. Also we are including Gerald Garcia's computer game POPTRIS, a FoxPro version of the Russian game of Falling Blocks.
Last, but not least, I am including a sample program that I wrote, that accesses the Windows API calls to tell you how much GDI memory you have left. GDI memory is that memory area in which Windows and user defined objects resides. In Win 3.1 it is limited to only 256K. That means that even you have 16MB of main memory, your GDI memory is only 256K and you can run out of memory and the built in FoxPro MEMORY() function will not give you a clue as to what is going on. The people I spoke with at Microsoft didn't have a clue as to how to tell how much GDI memory was left, but after much digging I was able to track it down. And I will pass this information on to you. Shortly we will be publishing a library of hundreds of API calls that you can access from FoxPro for Windows.
If you like what you see give us a call at (800) 93-FOXPRO.
We would like to hear from you. FoxMasters is published bi-monthly for a normal price of $179.00. Because you have purchased Jeb Long's book you may suscribe for only $99.95--if you pre-pay. Add $30.00 outside the
USA. Add 8.5% in California. Satisfaction Guaranteed.
MDIR.BIN v 1.0 3 March, 1991Copyright (c) 1991 John M. Bauman All Rights Reserved