Dec 092017
Tips & techniques hint file for Object Vision.

Full Description of File

Tips & techniques for Object Vision

File OVTNT.ZIP from The Programmer’s Corner in
Category Tutorials + Patches
Tips & techniques hint file for Object Vision.
File Name File Size Zip Size Zip Type
DESC.SDI 37 37 stored
FILE_ID.DIZ 37 37 stored
OVTNT.TXT 193789 47888 deflated

Download File OVTNT.ZIP Here

Contents of the OVTNT.TXT file


It's tough to make time for reading the ObjectVision manuals when
what you really want is to design an application right now.
Typically, time is short, the manuals are too long, and you have
a tight project deadline. Besides, using ObjectVision is so much
more fun than reading the manuals. That's where this guidebook
comes in handy.

Tips & Techniques is a power-user guidebook full of tips that
help you get the most out of ObjectVision. It contains essential
techniques, simple workarounds, shortcuts, nifty ideas, slick
tricks, and power tips from the pros. These tips are all
distilled from the experiences of users and the ObjectVision

The step-by-step instructions in here solve situations such as:
Where in the manual was that?, Why can't I get this to work?, and
How did they do that?

You can start anywhere in this guidebook--it consists of short
entries grouped into general categories. To find a particular
tip, you can look in the table of contents for an entry that
looks promising, or turn to a category and skim the entries.
Also, check the index since many tips actually fall into more
than one category.

Here's a short sample of the helpful hints you'll find.

I didn't know you could...

o get help for setting Paradox Engine Configuration options
while in the utility (see page 4)

o check how much memory is being used by an application
you're designing or using (see page 6)

o add your own bookmarks and personal notes to the
ObjectVision Help system (see page 7 and page 7)

o select multiple objects and change their properties or
relocate them as a group (see page 9)

o create a series of fields that skip over the remaining
fields as soon as a null value is entered (see page 15)

o make a decision tree that forces another form to appear
for data entry (see page 16)

o have a selection list field with the flexibility to let
users type a new value if new Zip is selected (see page

o ensure that the first letter entered for a state or city
name is a capital letter (see page 35)

o copy an entire expression by first selecting the root node
(see page 36)

o quickly select items in dialog box lists by typing the
letter the item starts with (see page 37)

o send custom error messages to the screen if a user enters
an invalid value for a field (see page 44)

o create buttons automatically for multiple links by first
editing the button names (see page 49)

o create a flexible Form Clear button using No as the
decision tree condition (see page 51)

o have a field check the validity of a date entered by a
user (see page 53)

Tips & Techniques is an ongoing project--exciting things
ObjectVision can do are continually being discovered. Your
participation in this project is encouraged. If you come up with
some nifty stuff that isn't printed in here, send it to us for
consideration. If your tip is published in the next version of
this guidebook, we'll send you a free T-shirt or some other
goodie. Send your tip to:

Borland International
ObjectVision Tips Editor
Database Publications Department
1800 Green Hills Rd.
P.O. Box 660001
Scotts Valley, CA 95067-0001

Preface Page 2

Adding DDE applications to your If you're not certain that
PATH SHARE is already loaded, type
SHARE at the DOS prompt and
Any Windows applications you press Enter. If SHARE is
want to create DDE links to already loaded, the message
must be added to the PATH SHARE already installed
command in your AUTOEXEC.BAT appears.
You can add the SHARE command
Otherwise, Windows doesn't know to your AUTOEXEC.BAT file by
where to find the applications adding this line to the file:
when ObjectVision tries to open
the DDE link. C:\DOS\SHARE

If you don't have a PATH This assumes your directory
command in your AUTOEXEC.BAT containing DOS files is named
file, add the following line to DOS and the file SHARE.EXE is
the file: in it. If your directory isn't
named DOS, insert the right
PATH=C:\VISION;\EXCEL;\WINWORD path instead. If you don't have
an AUTOEXEC.BAT file, type the
This assumes that in addition SHARE line in a text file and
to ObjectVision, you have both save it using the name
Excel and Word for Windows. AUTOEXEC.BAT. Store the file in
Also, it assumes the the root directory of your hard
ObjectVision directory is disk. Then restart your com-
C:\VISION, the Excel directory puter
is C:\EXCEL, and the Word for
Windows directory is
C:\WINWORD. If your directory Browsing for icons
names are different, insert
them for the directory path You can use the Program Manager
instead. If you don't have an to locate .EXE files that can
AUTOEXEC.BAT file, type this be placed on your Windows
line into Notepad and save it desktop as icons.
under the name C:\AUTOEXEC.BAT.
Store the file in the root After you choose File|New, the
directory of your hard disk and New Program Object dialog box
then restart your computer appears. Choose OK to accept
the default Program Item
Installing SHARE
After the Program Item
If you get this error message: Properties dialog box appears,
choose Browse. Specify a drive
CAN'T SHARE PARADOX.NET and directory name to search,
- is SHARE.EXE loaded? select a file name from the
list, and choose OK.
it means the SHARE command is
not currently installed. SHARE The path you choose displays in
is required when you want the Command Line of the Program
ObjectVision to use Paradox Item Properties dialog box. You
tables, and is also normally can type the name you want for
used in a network environment the icon in the Description
where files are shared. text box and choose OK. If you

Preface Page 3

don't specify an icon name, the First, select your existing
name of the .EXE file is used ObjectVision icon, and then
instead. choose File|Properties from the
Program Manager.
For example, you might want to
place the Paradox Engine When the Program Item
Configuration icon on your Properties dialog box appears,
desktop. choose the Change Icon button.
Your current icon displays next
In the Program Item Properties to the words Current Selection.
dialog box, select the drive Click View Next to see the
and directory where you other available icons.
installed ObjectVision (the
default is C:\VISION), and then Choose OK when the one you want
double-click PXENGCFG.EXE in is displayed. Choose OK again
the Files list to close the Program Item
Properties dialog box. Your
newly selected icon displays in
Switching ObjectVision icons the Program Manager

You can use an alternate
desktop icon supplied with

"BROWICON.EPS", width = 14 picas

Figure 1: The alternate ObjectVision icon and the Paradox Engine
Configuration icon

Setting Paradox Engine When you finish changing your
resources settings, choose OK and the
Paradox Engine Configuration
If you're a Paradox user, be Utility dialog box reappears.
sure you take advantage of the To keep the new settings,
options available in the choose Save, then double-click
Paradox Engine Configuration the Control-menu box to close
utility. the utility

When ObjectVision is installed,
the default Paradox Engine Getting Paradox Engine Help
settings are set low. It's
suggested that you increase the While you're setting network
default Resource Limits to the configuration and resource
mid-point in the allowed range. limits, choose Help or press
For example, change Open Tables Alt+H to see help for a
from 5 to 32. selected option.

To reset the resource limits or Different help text appears for
the network configuration, each option in the Network
start the Paradox Engine Configuration and Resource
Configuration utility and Limits dialog box
choose the corresponding

Preface Page 4

"ENGINHLP.EPS", width = 21 picas

Figure 2: Help text for the Paradox Engine Configuration utility

Understanding PARADOX.NET Deleting lock files

ObjectVision uses the Paradox Deleting lock files (with the
Engine whenever you access a file extension .LCK) can
Paradox table in your eliminate the error message:
application. If you want to
share a Paradox table with Multiple PARADOX.NET files
either ObjectVision or Paradox found
applications on the same
computer, set ShareLocal to Lock files are written for each
Yes. table accessed by a link. Lock
files contain information about
When an application linked to table insertions, deletions,
Paradox tables is shared on a and edits.
network, every user must use
the same PARADOX.NET file. ObjectVision sets the Paradox
Engine's Share Local Table
You use the Paradox Engine option to No during
Configuration utility to set installation. Lock files are
the directory and network type written to RAM memory for this
(as described on page 4). When setting.
you choose Save, the new
settings are written to your When the Share Local Table
WIN.INI file. option is set to Yes, lock
files are written to the
After Windows is restarted, the directory containing the
Paradox Engine checks the PARADOX.NET file. Ordinarily,
specified PARADOX.NET these files are deleted when
directory. If the PARADOX.NET you complete an ObjectVision
file isn't there, the Paradox session. However, if any
Engine automatically writes a unexpected termination of a
copy of the file to the Windows application occurs--
directory such as an Unrecoverable
Application Error--.LCK files
aren't deleted automatically

When you're not sure where the Deleting files for more disk
PARADOX.NET file is, you can space
use Paradox to find it.
If disk space is at a premium,
In Paradox, press F10, choose you can delete some or all of
View, press Enter, and select the following files from the
any table name. Then press Alt+ ObjectVision directory right
- (hyphen), and an information after installation:
screen appears with the
location of the PARADOX.NET *.OVD sample applications
file *.OVG sample graphic files
*.DB sample Paradox tables
*.PX sample Paradox indexes
*.DBF sample dBASE data files
*.NDX sample dBASE indexes

Preface Page 5

However if you delete all of almost 570K of disk space by
these you won't be able to open deleting INSTALL.EXE,
any of the example OVFILES.LST, and OVMASTER.EXE.
applications. These files aren't needed after
installation, but are still
Also, if you install from low stored in your ObjectVision
density disks, you can recover directory


Checking application limits application is also displayed
in the Help|About window.
While you're designing or
running an application, you can If an application nears the
keep track of how much memory maximum memory use of 262,144
it's using by choosing bytes, you might consider
Help|About. dividing it into two
applications that are joined by
The number of forms, fields, DDE links
and tree nodes in the

"ABOUTDBX.eps", width = 14 picas

Figure 3: The Help|About window

Getting help for commands you finish--consider minimizing
or resizing it.
To view a help screen for a
certain command, use the When the Help window is
keyboard to highlight the com- minimized and ObjectVision is
mand on the menu, then press maximized, press Ctrl+Esc. When
F1. the Task List opens, double-
click the Help window name to
For example, to get help for bring Help to the front as the
Tools|Stack, press Alt+T, then active window.
press Down until the Stack
command is highlighted. (Don't To use the Help window as a
type S to try to highlight the reference for writing
command, because that will expressions with @functions,
choose the command). Then press try resizing the window so it
F1 takes up a small number of
lines across the bottom of the
Keeping Help handy

If you frequently refer to
Help, don't close it each time

"HELPSHAR.EPS", width = 25 picas

Preface Page 6

This arrangement keeps the Help information right where
you need it

Help bookmarks To create a bookmark, choose
Bookmark|Define. The topic
Help topic title appears as the default
You can create your own bookmark name. You can edit the
shortcuts in the Help system name to make it more
using the Bookmark command. meaningful, then press OK.

In this example, you create a Now test your bookmark. Choose
bookmark for the help topic the Index button to move to
@DDEOPEN. another Help screen. Then open
the Bookmark menu.
Choose Help|Index and after the
ObjectVision Help window The bookmark you just defined
appears, click the @Functions appears as a command in the
topic. Bookmark menu. The @DDEOPEN
help screen appears when you
After the @Functions help choose the bookmark name you
screen appears, click the Link just defined for it.
functions topic. Scroll to the
@DDEOPEN topic and click it to Bookmarks are automatically
see the @DDEOPEN help screen. saved along with your Help

"MAKEBKMK.EPS", width = 25 picas

Figure 5: Bookmark names you define in this dialog box appear in
the Bookmark menu

Adding notes to Help topics choosing OK and the Help
Annotation window closes.
You can add information you
learn to help screens using the After you finish, choose OK.
Edit|Annotate command. Note that a paper clip symbol
appears to the left of the
Open the ObjectVision Help screen title.
system and move to a topic you
want to add your own notes to. Your annotation is
Choose Edit|Annotate. After the automatically saved to the Help
Help Annotation window appears, file. To see your notes, click
type the text you want to add. the paper clip symbol. To
update your notes, just edit
To start a new line, press the text in the Help Annotation
Ctrl+Enter. Don't press window
Enter--it's the same as

"MAKENOTE.EPS", width = 25 picas

Preface Page 7

Click the paper clip symbol to display your notes
associated with the topic

Closing Help o text object--place a
single question-mark
When you're finished with character next to or
ObjectVision Help, pressing inside the field. Choose
Alt+F4 closes the Help window. Properties|Border, and
uncheck the Outline
Be sure the Help window is option to remove the
selected before you press border from around the
Alt+F4, because this is a object.
standard Windows shortcut; it
closes whatever window is o graphic object--place a
active graphic bitmap next to
or inside the field
using Object|Graphic.
Labeling fields with help
See Figure 53 on page 41 that
Labeling fields you create help shows an example of a reverse
for makes it easy for users to type graphic used for this
find help when they need it. purpose

You can label a field that has
help specific to it with a


Understanding field order it's to the right of or if its
bottom edge is lower than the
Field order is based on the other field.
physical location of fields on
a form. In Figure 6, the large field is
last in the field order because
A field comes after another its bottom edge is lower than
field in the field sequence if any other field's

"FLDORDER.EPS", width = 21 picas

Figure 7: The field names in this sample indicate the field order

Who's on first? When you open a form, however,
the text insertion point
When ObjectVision creates a displays in the first field on
database, the first field on a the Goal Form that gets its
form is used to create the information from the user.
index's key field. The first
field is determined by the Also, once your application is
field order, described above. linked to a database table, you
can move the index's key field
to any position on the form

Preface Page 8

Building Navigation into If the next field in the Goal
applications form that requires user input
is on another form, the form
Understanding guided completion containing that field appears
and field order is essential to so a value can be entered.
controlling navigation through
your ObjectVision applications. When you directly select a
field by clicking it or
When you press Enter, pressing Tab until it is
ObjectVision selects the next highlighted, guided completion
field in the application that is interrupted. You can only
requires a value. Guided restore guided completion by
completion skips over any field choosing File|Resume
that gets its value from a
decision tree or a link. Field
order determines the next field
selected in the application.


Selecting multiple fields except calculated or linked
You can select multiple fields
to move, cut, copy, paste, or You can also use Edit|Clear All
assign properties to groups of to try out new decision trees
fields. Press after you create or edit
conditions or conclusion
o Ctrl+Tab--to select expressions.
multiple contiguous
fields on a form. Form|Clear clears all field
values from the current form
o Ctrl+ click--to select except for calculated or linked
multiple contiguous or values.
non-contiguous fields on
a form. A Clear button (using the
@CLEAR function) only clears
o Shift+ click--to rapidly fields linked to ASCII or
select contiguous fields database files. You must use
in groups. Hold down @CLEAR or a Clear button for
Shift, click the first each link that exists.
field in the group, and
then click the last To remove values read through a
field in the group. All DDE link, close the link
fields between the first
and last are selected
Replacing highlighted text

Clearing forms You can easily replace entire
text and field values using the
If you want a blank form to standard Windows technique of
appear when you first load an highlighting text, then typing
application, you need to choose new characters.
Edit|Clear All before you
choose File|Save. Edit|Clear Whether you select a field or
All removes all field values on display an expression, a text
all forms in an application object, or a help value, the

Preface Page 9

text insertion point appears to Pasting fields on a form
the left of the first
character. Here's an alternative to
creating and sizing every field
Press Shift+End to quickly individually. Create a single
highlight the entire value or field with the properties you
text string from the insertion want, copy it, and paste it
point to the end of the line repeatedly on the form.

In the Form Tool, press
Changing form names Ctrl+Ins to copy a selected
field, then press Shift+Ins to
A form name can be easily paste the copy on the form.
changed in the Stack Tool. After the crosshair cursor
appears, you can click the
With your application open, place on the form where you
choose Tools|Stack and a list want it to appear.
of the application's forms
appears. When you finish pasting copies,
choose Properties|Field,
To edit the form name, select double-click ,
the form and then choose Title and enter a new field name.
from the Properties menu. When Repeat this for all of the
the Form Name dialog box pasted fields you want to be
appears, replace the old name unique fields
by typing a new form name, then
choose OK.
Positioning selection lists
The new form name displays in
the list. Close the Stack Tool When a selection list is the
by choosing Stack|Close Tool first field in a form, it
displays as soon as the
application opens.
Displaying field names
Users can be bothered by this
If your field isn't displaying effect--they might think
the field name you entered, and they've opened the list without
you haven't unchecked Display realizing it.
Field Name in the Field Type
dialog box, enlarge the field. If possible, place another
field type as the first field
When the label font size is too on the form. It's less
large to display in a field, confusing when the user sees a
the field doesn't display the selection list display as a
entire field name. direct result of selecting a
If the field name does not
print correctly but it does
display correctly, enlarge the Stretching a form
field. You can choose
View|Printer in the Form Tool A form that's as large as the
for a closer approximation of screen is less than the full
how the form will print width of an 8 1/2"x11" sheet of

You can make a form that's
larger than the screen by
positioning a form object

Preface Page 10

beyond the default form Next, position the pointer at
boundaries. the top left of the field but
not on the handle (this would
In the figures for this resize the field) and drag the
example, a grid form appears field to the far right corner
behind the frontmost form to of the form. Note how the form
demonstrate how forms automatically resizes to
automatically increase in size. include the repositioned field.

For example, create a form by Position the pointer on the
choosing Tools|Form, type a bottom left handle and resize
name in the Form Name dialog the field to fill the entire
box, and then choose Enter. form. Once again, position the
pointer at the top left, inside
Choose Objects|Field, double- the field and move the field to
click , type a the far right corner of the
name in the Field Name dialog form. As soon as the object is
box, choose Enter, and place larger than the screen
the field on the form. When you boundaries, scroll bars appear
place the field on the form, so you can move to any part of
make it as wide as the entire the form
default form size.

"stretch1.eps", width = 23.5 picas

Figure 8: The default form size for a new form

"stretch2.eps", width = 23.5 picas

Figure 9: By moving the field to the right, the form
automatically enlarges

"stretch3.eps", width = 23.5 picas

Figure 10: Resize the field to fill the new form size

"stretch4.eps", width = 23.5 picas

Figure 11: When you move the field again, scroll bars appear

Stretching field objects In the Form Tool, select a
field, and position it in the
You can create a field the full upper left corner of the form.
width of an 81/2"x11" sheet of
paper. You can stretch field Press Shift+ Right to increase
objects to occupy an area the width of the field. Press
greater than the screen display Shift+ Down to increase the
one character or one line at a depth of the field
time using Shift+ arrow keys.

Preface Page 11

"FLDTYPDB.EPS", width = 16 picas

Figure 12: To keep a field name from dislaying, uncheck the
Display Field Name option

Placing field names Choose Objects|Text to create
text objects. Text objects have
The default placement for field the same default font and
names is in the top left corner border properties as fields, so
of a field, but you can put a you'll have to remember to
field name anywhere. remove the border if you don't
want it around the new text
First, open the Form Tool and object field name.
select the field. Then, choose
Properties|Field Type, uncheck You can edit text objects just
Display Field Name, and choose like other objects by first
OK. This removes the displayed selecting the object and then
field name. choosing commands from the
Properties menu.
You can select multiple fields
and remove the display of their The Properties|Name/Text
field names all at once, but be command works differently for
sure to first print a copy of text objects than for fields.
your form with the displayed If you edit a text object name,
field names for reference. only the selected text object
is changed--you don't have to
Next, create text objects and first choose to
place them anywhere on the form rename a copied text object.
(inside or outside the fields)
for the new field name labels. If you don't have a printer
handy, you can try placing your
If you place the text object text object field names before
inside the field, be sure to deleting the displayed field
test it in form completion mode names. It's harder, however, to
later; a text object is hidden visualize how your finished
while the field is selected if form will look
it's located in the data entry

"FLDNAMES.EPS", width = 21 picas

Figure 13: Text objects used as field name labels

Aligning text field, first open the Form
Left-aligned text is the
default, but you can also set Select the object, choose
alignment to the right, the Properties|Alignment, set an
center, or you can justify it. option, and then choose OK.

To change the alignment of Note that justified alignment
field values, text objects, or always left-aligns the last
value options in a check box line in a paragraph. Also, be

Preface Page 12

sure you let the words wrap-- of a justified line forces it
pressing Ctrl+Enter at the end to left alignment

"ALIGNTYP.EPS", width = 23.5 picas

Figure 14: General and Check Boxes field type alignment examples

Creating drop shadows rectangles under them display
differently. A button is always
You can add graphic punch to displayed in front of any other
your forms by creating drop object. A field, however, is
shadows to emphasize certain not displayed in front of a
buttons or groups of fields. rectangle when the field isn't
In the Form Tool, choose
Objects|Filled Rectangle to You can correct this by
create a filled rectangle, creating another filled
click to position it, and drag rectangle. Position it over the
to size it. The rectangle fields you want to display in
appears under a button or a front of the drop shadow, and
field. To display the rectangle drag it to the same size as the
without borders, choose fields. Then, choose
Properties|Border and uncheck Properties|Fill Pattern and
the Outline option. choose the solid white pattern.

In form completion mode,
buttons and fields with

"DROPSHAD.EPS", width = 20 picas

Figure 15: Drop shadows created with filled rectangles

Making a field entry required Choose Objects|Conclusion,
enter ="" for the condition,
and for the conclusion type on
You can make any field on your a single line:
form a field that requires
users to enter a value. @MESSAGE("Please enter a

Choose Tools|Form, create a new Then press Ctrl+Enter to move
form, and create a field named to a new line in the conclusion
Required. Double-click the expression and type @BLANK.
field name Required to open its
empty decision tree, and then Choose Objects|Conclusion,
choose Objects|Branch. enter Otherwise for the
condition, and +Required for
When the Field Name dialog box the conclusion.
appears, double-click Required
in the Field Name list.

Preface Page 13

Choose Tree|Close Tool, and To protect a field, open the
then choose Form|Close Tool to Form Tool and select the field.
test your new Required field. Choose Properties|Protection,
Whenever a user presses Enter check No Override or No Tree
without having first typed a Display (or both) and then
value, the message Please enter press Enter.
a value appears.
Close the Form Tool to test
The @BLANK function removes the your protected field.
null value from the field so
the field is still selected and Note that a selected field with
the user can enter another the No Override property
value doesn't have a text pointer--
the value can't be edited in
form completion mode.
Restricting users
The Field|Show Tree command is
You can protect information unavailable when a selected
you've entered in an field is protected with the No
application by assigning one or Tree Display property. Also,
both of these properties to a the decision tree doesn't
field: appear when a user double-
clicks the field name. Because
o No Override--to prevent ObjectVision Runtime doesn't
users changing a have a Tools menu, Runtime
calculated field value users can't view this tree

o No Tree Display--to
prevent users from
viewing a decision tree

"PROTECT.EPS", width = 18 picas

Figure 16: The Properties|Protection dialog box

Using short, addressed field display. Using multiple
names selection makes this easy (see
page 9).
When creating a large number of
fields, use short names to Select the top left field, hold
reduce typing. Also, if the down Shift, and click the last
fields are arranged in columns, field on the right to select
you can use a spreadsheet-like all the fields at once. Choose
notation for identifying each Properties|Field Type, uncheck
"cell" and "row." Display Field Name, and choose
OK to hide all selected field
It's helpful to display field names.
names while you are designing
the form. When you finish, You can see an example of this
remove the field names from the in the sample application

"ARRAYNAM.EPS", width = 25 picas

Preface Page 14

Field names display when Display Field Name is checked
in the Properties|Field Type dialog box

Deleting fields completely name is removed from all lists.

You can remove fields so they
no longer appear in a list of
fields. Skipping fields

You need to delete the field You can set up a series of
from all forms, the decision fields that automatically skips
tree for the field (and all over the remaining fields as
references to it in other soon as a null value is entered
decision trees), and any link in one.
connection to the field.
You create a decision tree for
To see if you have deleted the all fields in this series that
field completely, check the automatically enters a null
value when the preceeding field
- Form Tool--choose has a null string value.

Field|Find and double-
click the field name. If This example demonstrates a
a field by that name form that has three fields for
isn't selected, then children's names. When a user
that field isn't on any doesn't type a name but instead
form. presses Enter in a field, the
remaining fields are skipped.
- Tree Tool--choose
Tree|Select to verify 1. Open the Form Tool and
there is no decision create a form named
tree for the field. You Series Test. Create
might also need to check three new fields named
all other decision trees Child1, Child2, and
to see if any of them Child3.
have references to the
field. 2. Select Child2 and open
the Tree Tool. (The
For example, in the first field in the
Order sample series, Child1, doesn't
application, Austin have a decision tree).
Customer is referenced Choose Objects|Branch
in the decision tree for and double-click the
Sales Tax. Child1 field name.

Links Tool--choose each 3. Choose
link and then choose Objects|Conclusion,
Modify to ensure the enter ="" for the
field isn't connected to condition, and enter +""
a file. If it is, for the conclusion.
disconnect it. Choose
Objects|Conclusion again
When you finish checking and and enter Otherwise for
deleting, choose File|Save to the condition, and enter
save your changes. After you +Child2 for the
choose File|Open and load the conclusion.
revised application, the field

Preface Page 15

4. Create a decision tree enter ="" for the
for Child3 that is condition, and enter +""
similar to the one you for the conclusion.
just created for Child2. Choose
Again, you reference the Objects|Conclusion again
preceeding field. But and enter Otherwise for
for Child3, the the condition, and enter
preceeding field is +Child3 for the
Child2. conclusion.

5. Choose Objects|Branch 6. Close the Form Tool,
and double-click the choose Edit|Clear All,
Child2 field name. Then, and try entering string
choose values and null values.
Objects|Conclusion, v

"ONECHILD.EPS", width = 14.5 picas

Figure 18: Pressing Enter in the Child2 field without entering a
value skips to Next field after the series

"TWOCHILD.EPS", width = 14.5 picas

Figure 19: Pressing Enter in the Child3 field without entering a
value skips to Next field after the series

"CHILD2.EPS", width = 19 picas

Figure 20: The decision tree for Child2

"CHILD3.EPS", width = 19 picas

Figure 21: The decision tree for Child3

Launching another form forms: Called Form and Main
Form. Create three fields for
You can create a decision tree Called Form--Called1, Called2,
for a field that forces another and Called3.
form to appear for data entry.
Choose Form|Select, choose Main
Once the new, frontmost form is Form, and create three
completed by the user, it fields--Main1, Main2, and
closes and the rest of the Launcher.
original, Goal form can be
filled out. Launcher is the field that
makes Called Form display until
To try this example, choose it's completely filled out.
Tools|Form and create two

Preface Page 16

After Called Form is completed, +Called2 for the branch. Choose
it returns a value to Launcher. Objects|Conclusion, enter =""
for the condition, and +Called2
Select Launcher and choose for the conclusion.
Tools|Tree. You'll create a
decision tree for Launcher that Choose Objects|Branch, enter
returns a value only after each Otherwise for the condition and
field on Called Form has a +Called3 for the branch. Choose
value. Objects|Conclusion, enter =""
for the condition, and +Called3
Choose Objects|Branch and for the conclusion. Finally,
choose Called1 from the list in choose Objects|Conclusion,
the Field Name dialog box. Then enter Otherwise for the
choose Objects|Conclusion, condition, and 'Form completed
enter ="" for the condition, for the conclusion.
and +Called1 for the
conclusion. Choose Tree|Close Tool,
Form|Close Tool to try out your
Choose Objects|Branch, enter new forms
Otherwise for the condition and

"BOTHFORM.EPS", width = 25 picas

Figure 22: The forms used to create an application where one form
launches another

"LAUNCHTR.EPS", width = 23.5 picas

Figure 23: The decision tree for the Launcher field

Branching to different forms boxes appear next to the value
You may want to branch from a
main form to any one of several Next, create two more fields
different forms. and name them Dummy1 and
Dummy2. Place these fields next
The example in this section is to, but not before, Choices.
very simple--there are only two Open the Tree Tool for Dummy1,
choices. You can use this choose Objects|Conclusion, and
technique, however, to create a enter +Clerical1.
main form that includes many
more values to select, and then Choose Tree|Select, choose
create forms that request more Dummy2, choose
information about each of these Objects|Conclusion, and then
values. enter +Managerial1 for the
conclusion. Close Tools|Tree to
Start by choosing Tools|Form, return to the Form Tool.
and creating a form named
Interests. Then create a field Choose Form|New, and create a
named Choices. Choose form named Clerical. Create
Properties|Field Type, and then four fields named Clerical1,
choose Check Boxes. Make this Clerical2, Clerical3, and
field large enough so the check Clerical4.

Preface Page 17

Double-click the field name word Managerial for Clerical in
Clerical1 to open its empty each decision tree expression.
decision tree. Choose
Objects|Conclusion and type on Choose Tree|Close Tool to
a single line: return to the Form Tool, and
select Dummy1 (on the Interests
@AND(Clerical 2<>"",Clerical form). Choose
3<>"",Clerical 4<>"") Properties|Borders and uncheck
Outline. Choose
then choose OK. Properties|Field Type and
uncheck the Display Field Name
Choose Tree|Select, choose box.
Clerical2, choose
Objects|Branch, and then choose To prevent the field from
Choices from the Field Name displaying a value, just resize
list. Choose it to the smallest possible
Objects|Conclusion, enter field size. Repeat these steps
Clerical for the condition, and for the field Dummy2 and in the
then enter +Clerical2 for the Clerical and Managerial forms
conclusion. to hide Clerical1 and
Choose Objects|Conclusion
again, enter Otherwise for the Choose Form|Close Tool to test
condition, and click OK for the this application in the form
conclusion (without typing any completion mode:
text). Create this same tree
for Clerical3 and Clerical4, Check Clerical or Managerial on
substituting their own numbers the Choices form. The form name
where you typed in 2 before. you check replaces the
Interests form. Type a value or
When you've finished creating press Enter in each visible
Clerical and all its decision field of this form. When you've
trees, create the Managerial finished, the form disappears
form with the same four and Interests is again
numbered fields. Substitute the displayed

"CHECKFLD.EPS", width = 25 picas

Figure 24: The three forms used to create this sample application

"CLER1TRE.EPS", width = 22.5 picas

Figure 25: The decision tree for the Clerical1 field

Documenting applications (such as a calculated date) and
then choose Properties|Help.
You can document the key Enter the database file names,
components of an application link names, index names, and
for yourself and for users. graphic file names as help
For your own reference, you can
select a field users won't Also, for every field you
ordinarily request help for create you can initially add

Preface Page 18

help consting of notes For user reference, you can
to yourself about what the also create an extra form for
field is for, how it works, and the application and place text
what it's for. objects on it. You can document
the function and use of the
This information can be application, and any special
modified as the design of the tips you have.
application progresses, and at
the end it can become the basis Of course, you can also include
for your user documentation. field-specific help on any


Using key fields exceed the field-size limits of
the database.
When you want to create a
numeric key field that's linked An example of this is shown in
to an automatically-created the figure below, which shows
Paradox table, be sure you use the Too Long and Truncated
the Fixed field type. Value fields. The 300
characters in Too Long is well
Otherwise, if the key field is within ObjectVision's limits.
the default General field type, When the string value in Too
ObjectVision creates it as an Long is written to Paradox,
Alphanumeric Paradox field when however, the stored value is
it creates the Paradox table. truncated to fit within the
field limit of 255 characters.
Values in Paradox's
Alphanumeric fields are treated The corresponding limit for
as character strings, and are dBASE character fields is 254
sorted in ASCII order instead characters, and for Btrieve
of numerical order. This can it's 255 (including LString and
produce confusing results, ZString field types). Memo
because in ASCII order both 1 fields in dBASE, however, have
and 12 come before the value 2. a maximum character size over
5,000 characters.
After ObjectVision creates the
Paradox table and the link, you The structure of existing
can change the key field type database files imposes a
without affecting how the similar limit. For example, a
values get stored in the table. table that has a field length
specified as 20 or 10
characters will also truncate
an ObjectVision field value
Recognizing field size limits that is longer than that.

An ObjectVision field can hold For example, look at the figure
as many as 4,096 characters. If below. Write Field contains a
you link that field to an 150-character value, but what
external database file, is actually stored in the
however, you lose data when you database is determined by the
existing database field size

"LIMITS1.EPS", width = 24 picas

Preface Page 19

entire value in Too Long can't be stored in the database

"LIMITS2.EPS", width = 24 picas

Figure 27: The value stored in an existing database is limited by
the table's field lengths

Measuring field length

Before linking to a database Close the Form Tool and select
file, you can use @LENGTH to field F1. Hold down a (or any
determine how many characters a other letter) until you can't
field contains. enter any more characters, then
press Enter. The maximum number
ObjectVision values are of characters field F1 can hold
truncated when they exceed the appears in Counter.
maximum field length of the
database they are linked to. To find out how many field F2
can hold, select Counter and
Create a form named Field Size choose Tools|Tree. Double-click
and create 3 fields--F1, F2, the conclusion and edit
and Counter. Make F1 and F2 @LENGTH(F1) to read @LENGTH(F2)
different sizes for by highlighting 1 and typing 2.
demonstration purposes. Close the Tree Tool, enter the
maximum characters into field
Double-click the Counter F2, and press Enter
fieldname to open its decision
tree. Choose Objects|Conclusion
and enter:

"CONTAINS.EPS", width = 24 picas

Figure 28: Fields F2 and Counter, and the decision tree for

Paradox limits because ObjectVision always
uses the first field to index a
If you get the error message: table it creates.

Record too big for index In an ObjectVision General
field type, each character uses
you have exceeded the Paradox 1 byte. Numeric and Currency
3.0 and 3.5 limit of 1,350 field types use 8 bytes, and a
bytes per record in an indexed Date/Time field uses 4 bytes.
If your form exceeds this
This can happen when you are limit, you can change the
trying to create a table design by

Preface Page 20

reducing the size or The Paradox sort order displays
number of fields so the in the bottom right corner
total number of
characters is less than
1,350. Activating multiple links

o distributing the fields function
across multiple forms, function
each with a link to a You can create a decision tree
different database for an Enter button so it saves
the data to multiple database
Checking Paradox sort order
This example assumes you
Users who frequently get the already have a button for an
error message existing link. Create another
link to a database table (and
Primary sort index is remember the link name you
out of date define). Respond No to creating
automatic buttons for the link.
probably have a different
setting for their Windows and In the Form Tool, select the
Paradox sort orders. existing button, choose
Tools|Tree, and then double-
For example, using the Windows click the conclusion triangle.
International icon to set In the conclusion dialog box,
Language to English (U.S.) copy the entire @STORE or
matches Paradox's ASCII sort @UPDATE expression.
order. Setting Language to
English (International) matches Next, press Ctrl+Enter to go to
Paradox's International sort the next line, and press
order. Shift+Enter to paste the line
you just copied.
You can find out what sort
order Paradox is using for an Highlight the link name
index. In Paradox, press enclosed within double-quote
Alt+F10 from the main menu, marks, type the new link name
choose Miniscript and type you just created, and press
Enter. When the button is
Message sortorder() activated next time, it saves
x=getchar() the data to both files

"CONCLDBX.EPS", width = 24 picas

Figure 29: Press Ctrl+Enter to start a new line in the Conclusion
dialog box

Editing key fields with 3 fields--Col1 (Key),
Col2, and Col3.
You can edit any linked
database key field value by Note that Col1 (Key) is the
splitting the index. field name.

To try this example, open the Then open the Links Tool and
Form Tool and create a form create a database link (not

Preface Page 21

ASCII or DDE to this form. enter '+Col1 (Key)' for
Accept the default connections, its conclusion.
and let ObjectVision create the Enclosing the field name
automatic buttons for this in single-quote marks is
link. necessary because of the
parentheses in the name.
Close the Link Tool and the
Form Tool so you can enter 3. Open Tools|Links, choose
values in the new database the link name you
table. For the first record, created earlier, and
enter A in Col1 (Key), B in then choose Modify.
Col2, and C in Col3. Then
choose the Enter button. 4. Select the first line
with the Link To Col1
Assume you want to change the (Key) and then choose
value in Col1 from A to D. Disconnect. With the
Delete the A, type D, and same line highlighted,
choose the Enter button again. choose Connect and
The values for Col2 and Col3 double-click Col1 (key)
are removed because for the Read Field Name.
ObjectVision automatically
tries to locate a record for 5. For the Write Field
linked read fields (in this Name, double-click
case, Col1 (Key))--but there NewCol1. This is
isn't a record associated with splitting the index
the new key value D. between reading the
existing value in the
What if you really want to edit database and writing a
Col1 (Key) so its value is D, new value from NewCol1.
not A?
6. Choose OK to close the
1. Open the Form Tool and Links dialog box and
add a new field named then close the Form
NewCol1. Tool.

2. With NewCol1 selected, Now, whenever you want to edit
open the Tree Tool, a key field, just select
choose NewCol1, type the new value,
Objects|Conclusion, and and choose Enter

"SPLITLNK.EPS", width = 23.5 picas

Figure 30: After adding the NewCol1 field, split the index for
the link

"SPLITHRE.EPS", width = 17.5 picas

Figure 31: The new index value is written to the database and
read by Col1 (Key)

Preface Page 22

Creating a scrolling lookup After the link dialog
field box appears, type
Lookup states for the
You can create links to a Link Name, and press
field that "looks up" data you Tab. Then type Lookup
have already entered in a for the Paradox Table
database. Also, by checking Name, and press Tab.
the Automatic selection list,
you can save new items to the 4. A dialog box appears
database. with the message:

The field that is performing 5. Unable to open
the lookup must be the first Paradox
field on your form when the table. Create a new
link is created (if table named Lookup?
ObjectVision is creating the
table). The first field on a Choose OK. After the
form contains the unique key Link dialog box
values each of which has a set reappears, choose OK to
of associated values. accept the default link
Or, if the table already
exists, the first field must 6. Another dialog box
be used as the lookup field appears displaying the
and it must be the only key. prompt:

Once the form is linked to a 7. Automatically add
database, ObjectVision reads appropriate buttons
all of the key field values for
into memory. When a particular new link named Lookup
key value is selected, the states?
associated field for that
record is read into the other Choose Yes. After the
linked fields. dialog box closes,
choose OK in the Links
1. To create this lookup dialog box.
field, choose
Tools|Form to create a Now you're ready to
new form. Type the new enter the list of fifty
form name States lookup state abbreviations and
table and then choose their corresponding
OK. full state names.

2. Create two fields named 8. Choose Form|Close Tool,
State and Full name by and select the State
choosing Objects|Field, field. Type a two-
double-clicking New Field>, typing the such as MA, and press
field name, and then Enter. Type
choosing OK. Massachusetts for the
full state name and
3. Next, create the link then click the Enter
for the database table. button.

Choose Tools|Links, 9. Then click the Clear
choose Create, select button to remove the
Paradox as the link values from the fields
type, and choose OK. and begin entering

Preface Page 23

another state dialog box appears,
abbreviation. double-click Selection
10. The order you enter the
data in isn't important 12. The Values of: State
since the State field dialog box appears with
is a key field that Automatic checked (its
automatically sorts the default setting).
database into Choose OK to accept
alphabetical order. this setting.

11. After you finish 13. It's essential that
entering all the Automatic is checked,
states, select the so that database
State field, choose entries are used to
Tools|Form, and choose automatically create
Properties|Field Type. the selection list
After the Field Type

"LOOKUP.EPS", width = 23 picas

Figure 32: After you select a State value, the abbreviation and
full name appear

Creating a flexible selection 2. Next, choose Form|New to
list create a second form
named Read Data and
This example creates an press Shift+Ins to paste
automatically-generated, the fields from Mailing
flexible selection list. Information.

This list gives users the 3. Choose Properties|Field,
flexibility of either selecting choose ,
a value from a list or typing a and enter a new field
new one. name for each copied
field--Read Zip, Read
Because there are a lot of City, and Read State.
steps in this example, it's
broken into chunks of 4. Select the Mailing
instructions under different Information form again,
subheadings. and double-click the
field name Zip to create
Create the Mailing Information its decision tree.
form Choose Objects|Branch,
and choose 1. Open the Form Tool, Field>.
create a form named
Mailing Information, and 5. Type Zip In as the dummy
place 3 fields on it-- field to branch on, and
Zip, City, and State. press Enter. Choose
Select all 3 fields and Objects|Conclusion, type
choose Edit|Copy. new Zip for the
condition and press

Preface Page 24

Note that a single-quote enter +Zip for the
character and a blank conclusion. Choose
space precede the new Objects|Conclusion
Zip condition. again, enter Otherwise
for the condition, and
6. When the conclusion +Read Zip for the
dialog box appears, conclusion.

"TREEZIP.EPS", width = 17.5 picas

Figure 33: The decision tree for Zip that's copied and edited for
City and State

Copy, paste, and edit the (instead of +Zip) and
decision tree for Zip the second conclusion so
it's +Read City (instead
1. Use the decision tree of +Read Zip).
for Zip as a master copy
to paste and edit for 2. Select the empty
City and State. Choose decision tree for State
Tree|Select, double- and paste and edit the
click City, and press tree so its first
Shift+Ins after the conclusion is +State and
empty decision tree for its second conclusion is
City appears. +Read State.

Edit the first
conclusion so it's +City

"TREECITY.EPS", width = 17.5 picas

Figure 34: The pasted and edited decision tree for City

"TREESTAT.EPS", width = 17.5 picas

Figure 35: The pasted and edited decision tree for State

Set up the Read Link to the Tools|Links, and choose
ZipCodes table Paradox as the link
1. Choose Tree|Select,
double-click the Zip In 3. When the Links Tool
dummy field name. Choose appears, type Read Link
Objects|Conclusion, type for the Link Name, press
+Read Zip for the Tab, type ZipCodes for
conclusion, and press the Paradox table name,
Enter. and then press Tab
again. Click OK to
2. With the Read Data form create the new table
selected, choose named ZipCodes.

Preface Page 25

4. Because this will be a 6. Choose Cancel or press
read link only, Esc when the Write Field
disconnect all the Name dialog box appears.
fields. Select each row
in the Field Name list 7. Repeat this for each of
and then choose the three field names.
8. Choose OK when you
5. Connect each field as finish defining the
read only by first link. Choose No when
selecting the field, ObjectVision prompts you
then Choosing Connect. to create automatic
When the Read Field Name buttons, and then choose
dialog box appears, OK to return to the Form
double click the field Tool.
name to read (it's the
same as the Read Data
form field name).

"READ1DBX.EPS", width = 23 picas

Figure 36: Read Link is edited so it only reads the ZipCodes

Set up Read and Write Link to Note that the database
the ZipCodes table Field Names that appear
are Read City, Read
1. Choose Form|Select to State, and Read Zip.
select the Mailing
Information form. Create 3. Connect each field name
another Paradox link to to match the figure
the same ZipCodes table below, then choose OK.
you just created. In response to the
prompt, choose Yes to
2. When the Link Tool create buttons
appears, type Read and automatically.
Write Link, press Tab,
type ZipCodes, and press
Tab again.

"RANDWDBX.EPS", width = 23 picas

Figure 37: This link reads and writes to the same database table,

Enter values into the ZipCodes Ctrl and click the Next,
table Clear, and Delete
buttons. Press Shift+Del
1. Select the Previous to cut them from the
button, then hold down

Preface Page 26

form. Resize the Mailing 6. Select Read Zip (in the
Information window. Read Data form), choose
Tools|Form, choose
2. Select the Read Data Properties|Field Type,
form and delete the Read and choose Selection
City and Read State List.
fields--they're just
dummy fields. Choose 7. Enlarge the Read Data
Form|Close Tool to test form vertically to make
your new application. room for its selection
list to drop down.
3. Choose File|Save to save
your work. Choose Note that the value new
Edit|Clear All. For the Zip appears in the Read
first value in Read Zip list of value
Data, type new Zip just options. You can select
as you entered it new Zip to add new zip
earlier in the decision code records to the
tree conditions for database (and the
City, State, and Zip. selection list).

4. When the Mailing Once a zip code appears in the
Information form appears selection list, selecting it
in front, type new Zip fills in the corresponding City
for the value of Zip, and State values.
then press Enter twice
and choose the Enter After you enter the unique
button. value new Zip in the database,
you can choose Tools|Form and
5. Choose File|Save, and assign a picture for the Zip
then choose Edit|Clear and State fields

"DONEZIP.EPS", width = 23 picas

Figure 38: Users can add new zip codes to the database and
selection list by selecting new Zip


Using the power of @DDEOPEN If you use a single generic
link name, you can easily close
function the link without checking to
function see which link is open, and
You can recycle your DDE links then open the same link using
so memory use in an application different arguments.
stays constant.
You can set up a conclusion
Instead of having multiple link that begins with
names that you set up using the @CLOSE("Linkname") on one line,
Link Tool, you can use the and ends with the @DDEOPEN
@DDEOPEN function in a decision function and its arguments on
tree to open and close the the second line.
links on a button field.

Preface Page 27

Once you create one conclusion, the only field on the form, the
you can copy, paste, and edit data displays similarly to the
it to be appropriate for display of the linked
multiple conditions spreadsheet. If there are
multiple fields on the form and
another field is selected,
Naming each cell delimiter marks appear between
values in the field linked to
There's a big difference in how the remote name.
ObjectVision displays a named
block of cells and how it Take the time to name each cell
displays a single named cell in your DDE link. Not only is
linked by DDE. the value displayed without any
delimiter marks, but you have
If the ObjectVision field that more flexibility in using that
is linked to the remote name is value

"VALUEDEL.EPS", width = 23 picas

Figure 39: Delimiter marks appear when a block of cells is linked
to a field

Linking to Excel the complete path (drive,
directory name, and file name
In Excel, you select a cell and including the file's extension)
choose the Formula|Define Name of the Excel file containing
command to assign a remote name the named cells you created,
for that cell. and then press Tab again.

When the Define Name dialog box The top, blank line in the Name
appears, type the name you want and Read Link: list is
to use for the remote name in selected. Next, choose Connect.
the Name text box and choose After the Remote Name dialog
OK. Repeat this process for box appears, type a cell name
every cell you want to connect you created in Excel, and
using a DDE link. choose OK.

Remember to save these changes When the Field Name dialog box
to file, because the DDE link appears, double-click the name
always reads the last saved of the ObjectVision field you
version of the document file. want to contain the named
cell's value. If you want to
In ObjectVision, you create a connect more named cells,
form and place the fields you select the next blank line in
want to link to the named the Name and Read Link: dialog
cells. Choose Tools|Links, then box, and repeat the steps for
choose Create, select DDE in connecting a cell. When you
the Link Type dialog box and finish, choose OK.
choose OK.
If Excel isn't loaded in
After the DDE Link dialog box memory, the dialog box shown in
appears, type a Link Name, Figure 40 appears. Choose Yes
press Tab, type Excel (the to establish the connection.
application name), and press This dialog box will appear
Tab again. For Document, type whenever this DDE link is first

Preface Page 28

established and Excel isn't
already loaded in memory
arranging the two applications
so they both display on screen
at Name and Read Link: dialog
"REMOTDBX.EPS", width = 23 picas

Figure 40: After you choose Connect, enter the name for the Excel
cell in this dialog box

"STARTEXC.EPS", width = 18 picas

Figure 41: Choose Yes to load Excel in memory and establish the
DDE Link

Linking ObjectVision to In the Link Tool window, enter
ObjectVision Read Try as the Link Name,
Vision as the Application, and
You can use ObjectVision as a Try as the Document.
gateway application. Any
values saved in the Note that if the document you
application can be read into are going to read is in
the connected application. another directory than the
application that reads it, the
For example, users in a remote full path name of the document
location could use a DDE is required.
connection to your application
to look at the exact record Next, click Connect or press
you're working with. Because a Alt+C (but don't press Tab or
DDE link reflects changes on Enter). When the Remote Name
the screen, the two of you dialog box appears, type
could perform a what if TryA--the name of the
analysis together over the ObjectVision field in the
telephone. document you are going to
read--and then press Enter.
To try this example, create a
single field application in Choose OK to start the link. A
ObjectVision. Choose prompt dialog box appears
Tools|Form, create a form displaying the message:
named Try, and then create a
single field on the form named Remote data not accessible.
TryA. Start application
Choose Form|Close Tool, choose
File|Save, and then save your Choose Yes. Another copy of
application as Try. ObjectVision is started and
the Link Type dialog box
Choose File|New, choose appears again. If the link
Tools|Form, and create a form isn't successful, however, you
named ReadTry. Create a single hear a beep and the Link Tool
field named ReadTryA and then window remains on screen.
choose Tools|Links. Choose
Create, and then choose DDE as Try this link by opening the
the Link Type. other copy of ObjectVision
that is minimized and

Preface Page 29

arranging the two applications Linking to Word for Windows
so they both display on screen
at the same time. Linking to Word for Windows
has some major differences to
Type a value into the field DDE links to Excel or
TryA and watch its value ObjectVision documents.
appear in ReadTryA.
If Word for Windows is not
When you finish, close open and its document is not
ReadTry. Because it's the loaded, ObjectVision can't
server in this client/server read the data. Because Word
relationship, the application for Windows uses the Clipboard
closes without any user to send data through DDE,
message. However, if you first ObjectVision can't get the
close the client, TRY.OVD, data unless Word for Windows
this message appears: is already open with the file
you want to link to.
Remote links to document
exist. Close anyway? Otherwise, linking to Word for
Windows is similar to linking
Once a DDE link to an to Excel. First, you highlight
application is closed, you text in a document, and choose
reestablish the link by: the WinWord Insert|Bookmark
command. Enter a Bookmark name
o re-opening the server-- and then choose OK.
choose File|Open to
reopen the server In ObjectVision, choose
application, which Tools|Links and create a new
automatically opens the DDE link. In the Link Name
link. field, enter any name for the
link. In the Application
o recreating the link-- field, enter Winword. In the
choose Tools|Links to Document field, enter the
physically recreate the complete path name for the
link using the Links document and include the file
Tool. name extension.

o creating a link Press Tab and enter the name
button--create a button of the bookmark you just
for the form and put created as the Remote Name,
the @DDEOPEN function and then press Enter
in its decision tree


Using international characters Then, hold down Alt and use the
numeric keypad to type 0 (zero)
ObjectVision accepts the full followed by the ANSI code that
256-character ANSI (American corresponds to that character.
National Standards Institute) When you release Alt, the
character set. character appears.

To type a character that isn't You can type ANSI characters
on your keyboard, position the into fields, text objects,
text insertion point where you expressions, or help text.
want the character to appear.

Preface Page 30

For example these ANSI codes other countries, be sure to
produce these characters: reset them when you finish.

o Alt+0163--() British The argument separator
Pounds sterling character is automatically
converted to the correct type
o Alt+0165--() Japanese for existing applications.
Applications you create after
o Alt+0191--() Spanish changing the international
inverted question mark settings, however, require the
correct separator type.
Note that the ANSI character
set is different from the IBM For example, when you open the
PC extended character set. International icon and set
These two character sets Country to France, List
contain many of the same Separator has been set to the
characters, but they are semi-colon ";", and the Decimal
ordered differently Separator has been set to the
comma ",".

Argument separator In ObjectVision, the List
Separator character is used for
If you have set your Windows the argument separator. Using
international options so you the incorrect character causes
can work with databases from an error in the expression

"INTLSEPA.EPS", width = 24 picas

Figure 42: The List Separator is the character ObjectVision uses
to separate arguments


First and last database records Choose Objects|Field to create
a new field, then enter the new
field's name, Top or Bottom.
You can add Top and Bottom After you place the field on
buttons to a form so users can the form, double-click the name
go immediately to the first or to open its empty decision
last record in a database. tree. Press Shift+Ins to paste
the decision tree of the
An easy way to create these existing button.
buttons is to copy the decision
tree from an existing button. Double-click the conclusion
In the Form Tool, double-click triangle to edit the function
the name of an existing button. name. For the Top button,
After the decision tree for replace the copied @function
that button appears, press name with @TOP (for the Top
Ctrl+Ins to copy that tree. button) or @BOTTOM (for the
Bottom button).

Preface Page 31

With the field still selected, above), since it's a foolproof
choose Properties|Field Type, way to select an existing
select the Button field type, record.
and choose OK. Repeat this for
the Bottom button A common user error is to
choose @NEXT or @PREVIOUS when
no record is current. When this
Browsing a database happens, this error message

Cannot reposition at this
time. No current record

If users first choose Top and
You can let users browse a then Next, or choose Bottom and
database by adding a Top and a then Previous, they can browse
Bottom button (described through records

"NEWBUTTS.EPS", width = 25 picas

Figure 43: Previous and Next button names replaced with arrow

Arrows as button names In the Form Tool, select the
existing Previous button, then
You can use the less than "<" choose Properties|Name/Text.
and the greater than ">" Replace the field name
symbol with a hyphen "-" to Previous with <- and choose
create an arrow symbol OK. Do the same thing with the
Previous and Next button Next button, replacing the
names. field name Next with ->

You can also use "<<==" and
"==>>" for a similar effect.


Understanding date and time The fractional portion of a
values date serial number is used to
store time values.
Date values are stored as
serial numbers ranging from Time values are stored as a
-36522 to 73050, representing value between zero and one,
dates from January 1, 1800 to representing a fraction of a
December 31, 2099. 24-hour day.

Serial number 0 represents The value 0.00 represents 12:00
December 30, 1899, 32033 a.m., 0.25 represents 6:00
represents September 13, 1987, a.m., 0.50 represents 12:00
and 33394 represents June 5, noon, and 0.75 represents 6:00
1991. p.m

Preface Page 32

Storing precise time values doesn't change the type of
value stored in the database
You can store the precise
DateTimeNumber value @NOW gets
from the user's computer clock. Calculating an age

Open the Form Tool, create a function
new form, and place a new field You can calculate a person's
named Date And Time on it. age based on today's date and
Choose Properties|Field Type, their birthdate. This same
select Fixed, type 15 for the technique could be used to
number of decimal places, and calculate the length of time a
then choose OK. payment is overdue.

Double-click the Date And Time Choose Tools|Form, and create a
field name to open its empty form named Date Calculator.
decision tree. Choose Create 3 fields--Today's Date,
Objects|Conclusion, type @NOW Birthdate, and Age In Years and
for the conclusion, and press place them on the form.
Select Today's Date, hold down
To see this field's value, Ctrl, and then click Birthdate.
choose Tree|Close Tool, and With both fields selected,
then choose Form|Close Tool. To choose Properties|Field Type,
update the time value, choose and then double-click
Edit|Clear All. Date/Time. After the Date
If this Date And Time field Format dialog box appears,
value is written to a database, double-click one of the date
it's written as a formats from the top of the
DateTimeNumber. It also list.
displays in ObjectVision as
this precise serial number, function
which is probably not what you Double-click the Age In Years
want users to see. field name, then choose
Objects|Conclusion. Enter this
So, after you create the link expression on a single line:
to the database, select the
field, choose Properties|Field [email protected]((@NOW-
Type, and then choose Birthdate)/365.25)
Date/Time. When the Date dialog
box appears, choose a display Close the Tree Tool, close the
format you want. Changing the Form Tool, and test your form
field's display property by entering your own date of
birth in the Birthdate field

"AGE.EPS", width = 25 picas

Figure 44: The decision tree for the Age In Years field

Calculating dates calculate an earlier or later
date based on that number.
You can use the serial number
for a date value to let @DATE For example, you might want to
calculate a date six months

Preface Page 33

prior to January 16, 1992. You For this example, open the Form
can type this conclusion Tool, and create a field named
expression: Time (@NOW) large enough to
hold a twenty-one character
@DATE(1991,1-6,16) value. Choose Properties|Field
Type, select Fixed, and enter
The values 1991, 1-6, 16 15 as the number of decimal
corresponds to the Year, Month, places.
Day argument list required by
@DATE. Create another field, Time
String, that's the same size as
Although the normal range for Time (@NOW). By default, the
months is 1 to 12, you can put field is the General type.
an expression that results in a
negative number (the 1-6 value) Double-click the Time String
in the argument to calculate a field name to create its
prior date. decision tree and then choose
Objects|Conclusion. For the
Make sure that the field with condition, press Enter, and for
this decision tree is a date the conclusion type the
type. Otherwise, you'll see the following expression as a
serial number as the field single line:
value instead of the date
[email protected](@NOW)&":"[email protected](@NOW)
&":"[email protected](@NOW)
ASCII time formats
To see how this works, create
an ASCII link to this field and
let ObjectVision automatically
create the buttons. Press Enter
You can write a time value to to write the time to the file
an ASCII file as and press Clear to update the
hour:minutes:seconds instead of time display
as a serial number. Hour,
minutes, and seconds are string
values extracted from the time
value using @functions.

"ASCIITIM.EPS", width = 25 picas

Figure 45: The Time (@NOW) field is a Fixed field type with the
maximum fifteen decimal places


Concatenation To try this simple example,
open the Form Tool and create a
You can use the concatenation form named Concatenation.
operator "&" to combine Create 3 fields for the form--
multiple string values into a First Name, Last Name, and Full
single value. Name.

Preface Page 34

Double-click the Full Name To see this work, choose
field name to open its decision Form|Close Tool. Enter your
tree. Choose Objects|Conclusion first name into the First Name
and enter this expression as a field and your last name in the
single line: Last Name field

+First Name&" "&Last Name

"CONCATEN.EPS", width = 25 picas

Figure 46: Remember to put a space between the double-quote marks
to separate the two strings

Capitalizing the first letter @UPPER(@LEFT(Capital Idea, 1))
converts the first letter to
uppercase. The ampersand "&"
combines this capital letter
To capitalize the first letter with the remaining lowercase
of a field's string value, you letters. @RIGHT gets the
create a decision tree that lowercase letters by getting
converts the first letter to the letters from right to left.
uppercase and then replace the
original character with the @RIGHT(Capital Idea,
uppercase letter. @LENGTH(Capital Idea)-1) is the
entire string, minus the
First, create a test form by original, first letter. @RIGHT
choosing Tools|Form, type a determines the number of
form name, and choose OK. Add a characters in the string from
field to this form by choosing the end to the beginning.
Objects|Field, double-click
, type Capital To test this field, choose
Idea, choose OK, and then place Tree|Close Tool, choose
the field on the form. Form|Close Tool, and then enter
values into the field. If a
Next, double-click the Capital number or a symbol is the first
Idea field name to open the character in the string, it
Tree Tool. Choose remains unchanged.
Objects|Conclusion and type the
following expression on a If you want to check to be sure
single line: it's a valid string value
before ObjectVision tries to
@UPPER(@LEFT(Capital capitalize it, you can use a
Idea,1))& modified version of the value
@RIGHT(Capital Idea, type validity check (on page
@LENGTH(Capital Idea)-1) 53)

If this expression isn't typed
as a single line, it will
produce an error message.

"CAPITAL.EPS", width = 24 picas

Figure 47: The first word typed into Capital Idea was originally
(with a lowercase o)

Preface Page 35


Copying nodes Starting new lines in
When you need to create a set
of similar decision trees, it's When you create or modify a
usually easier to copy the condition or conclusion,
tree, paste it into another remember that you press
field's decision tree, and then Ctrl+Enter to start typing on a
edit it. new line.

To copy an entire tree in the If you forget and just press
Tree Tool, first select the Enter, it's equivalent to
root node, then press Ctrl+Ins. choosing OK and the dialog box
Then choose Tree|Select to find closes.
the field you want to paste
this decision tree into. Be sure you only start a new
line after a complete
Note that a tree must be empty expression. Each line in an
before you can paste an entire expression is evaluated, and an
tree into it. error message appears if the
expression isn't complete.
To copy a branch node (and its
conditions and conclusions), For field-specific Help text,
highlight the node, and press it isn't necessary to press
Ctrl+Ins. Choose Tree|Select Ctrl+Enter to start a new line
and highlight the node you want for every sentence. Help text
to paste the new branch into automatically wraps to fit the
ObjectVision Help window


Copying applications to disk For more information about
saving graphics files, see page
When you copy files to disk for 40
archiving or distributing, be
sure you copy all files
required by the application as Backing up files
well as the application file
(.OVD) itself. In addition to backing up your
application and graphics files,
If the application has be sure to also back up any
graphics, the .OVG files must files associated with linked
be copied to the floppy disk database or ASCII files.
For example, Paradox uses the
It helps to put all files in following extension names: .DB
the same directory. Also, check for tables, .PX for primary
the Links Tool|Modify window indexes, .X?? and .Y?? for
and be sure the table name is secondary indexes.
listed without a specific path
reference. You can use the File Manager
File|Copy command to copy
multiple files using the From
text box.

Preface Page 36

For example, open the File If you prefer the graphic view
Manager icon and choose of your directories the File
File|Copy. To copy all Paradox Manager displays, locate the
files to a floppy in drive A, directory you want to back up
you can use standard DOS by clicking first the drive and
wildcard characters "*" and "?" then the directory folder.
to type *.DB *.PX *.X?? *.Y??
in the From text box and A: in Double-click the directory
the To text box. Choose Enter folder to open its list of
to copy the files. files. To select multiple file
names, hold down Ctrl as you
You can also specify families click. To select a contiguous
of files in a similar way. If block of file names, hold down
you have an application named Shift, click the start of the
STAFFING.OVD and all files use block, and then click the other
"STAF" as the first four end of the block.
letters of the file name, you
could type STAFF????.* in the Then choose File|Copy to
From text box to copy all of specify the drive where you
them, regardless of extension want to copy the files


Getting Windows Help It can then be pasted into your
word processor for spell
When you choose any of the Help checking or other revisions.
menu commands (except About), When you finish, you can copy
the ObjectVision Help window and paste it back into
appears. You can get help for ObjectVision.
using Windows by pressing F1
while you are in ObjectVision This gives you lots of ways to
Help. prepare and check your text
before using it in your final
To return to ObjectVision Help, ObjectVision application.
click the Index button
For example, you could delete
text from the Help Value dialog
Importing text box in order to paste it into a
Windows word processor. Then
You can cut or copy highlighted you could spell check it, copy
text from other applications to it and paste it back into the
the Clipboard and paste them Help Value dialog box.
into ObjectVision's Text Value,
Help Value, Condition, or
Conclusion dialog boxes using
Shift+Ins. Using shortcut keys for lists

You can also cut (Shift+Del) or Locating an item in a dialog
copy (Ctrl+Ins) highlight text box list with the arrow keys
from an ObjectVision text can be too slow if it's a long
object, field-specific help list.
text, condition or conclusion
to the Clipboard. For example, the Paste Function
dialog box has fifty-five items

Preface Page 37

and only nine display at First, open the PIF Editor (you
a time. may need to first open the
Accessories Group in the
To quickly select a function in Program Manager).
a dialog box list, tab to the
list and type the first letter In the PIF Editor window, type
of the function you want. the file name and the location
(drive and directory name) of
If there is more than one item Paradox on your computer. Also,
starting with that letter, for Optional Parameters, type:
continue typing the same letter
until the item you want is -real -win -share
This ensures Paradox won't run
Other handy keys are Home, End, in protected mode, which causes
PgUp, and PgDn. memory conflicts with Windows.

Home selects the first item in Choose File|Save, type
the list, and End selects the paradox.pif for the file name,
last item in the list. PgUp and then choose File|Exit.
scrolls the list up and selects
the top item on the displayed Next, choose File|New, select
list, and PgDn scrolls the list Program Item, and then choose
down and selects the bottom OK. After the Program Item
item of the list. Properties dialog box appears,
type the icon name you want in
The amount scrolled by PgUp and the Description text box. Also,
PgDn is one item less than the in the Command Line dialog box,
number of items displayed at a type the directory and file
time name of the .PIF file you just
created. Then choose OK.

Running Paradox 3.5 under By using the .PIF file name as
Windows the Command Line, the special
parameters are used every time
You can run Paradox under you double-click this new icon
Windows by setting it up with to start Paradox
the PIF Editor.

"FIRSTPIF.EPS", width = 21 picas

Figure 48: The PIF Editor window where you specify the settings
you want

"SECONPIF.EPS", width = 21 picas

Figure 49: Note that the .PIF file, not the .EXE file, is listed
in the Command Line

Preface Page 38

"THIRDPIF.EPS", width = 25 picas

Figure 50: The Credit sample application and its Order table in

DOS application shortcut keys After the PIF Editor window
opens, click the Advanced
If you are using Windows' button at the bottom.
enhanced mode for a 386 with
2MB of RAM, Windows lets you Select the Application Shortcut
assign shortcut keys to Key text box at the bottom of
activate a non-Windows the Advanced Options window.
application, such as Paradox, Press the keys you want to
already loaded in memory. assign as shortcut keys and
that combination appears in the
The following instructions text box.
explain how to modify setup
shortcut keys by modifying your When you finish, click OK,
PARADOX.PIF file. choose File|Save, and then
choose File|Exit. You have to
Open the PIF Editor, and then exit and restart Windows before
open the PARADOX.PIF file. your shortcut keys work

"SHORTPIF.EPS", width = 23 picas

Figure 51: The Application Shortcut Key option is at the bottom
of the Advanced Options window

Icons for applications To create a desktop icon, first
select the Program Manager
For an application you run Group window you want it in.
frequently, create an icon that Then choose File|New and choose
starts ObjectVision and also Program Item. Next, type the
opens that .OVD file. icon name (Description) and the
drive, directory, and file name
During installation, the including the .OVD extension
default .OVD file extension is (Command Line). After you
written to the [extensions] finish, choose OK
section of the WIN.INI file.

This associates ObjectVision's
file extension with the
VISION.EXE executable file.


Using the Task List ObjectVision and a graphics
application such as Paintbrush.
The Windows Task List is useful
for instantly switching between You press Ctrl+Esc at any time
to open the Task List. It

Preface Page 39

appears in front of the file is stored with the default
ObjectVision window. Double- .OVG file extension. The Save
click Program Manager in the File Name as dialog box also
Task List to open it. Double- shows the active drive and
click the Paintbrush icon to directory name on the top line.
start working on graphics.
Be sure you don't type a path
To return to ObjectVision, name in front of the graphic
press Ctrl+Esc and double-click file's name or ObjectVision
ObjectVision in the Task List. won't be able to find the file
when you distribute your
applications on floppy.

Saving graphics files When a graphic is saved along
with a path name, the path name
When you choose Objects|Graphic appears on the graphic's tag
after copying a bitmap to the line when it displays in the
Clipboard, the Save File Name Form Tool. ObjectVision won't
As dialog box appears. find the .OVG file on floppy if
the path name has been saved
This dialog box is where you along with the graphic file's
type a name for your name
ObjectVision graphic file. The

"GRAPHDBX.EPS", width = 19picas

Figure 52: The Save File Name As dialog box for graphic objects

Naming graphics as a family When you copy the files to disk
for safekeeping or
You can make it easy on distribution, it's easy to see
yourself by naming your which ones belong together
graphics (and your database
files, too) with "family"
names. Proportional sizing

For example, if you name an You can proportionally increase
application Requests, the or decrease the size of a
default extension is added so graphic on a form.
the actual file name is
REQUESTS.OVD. First, open the Form Tool, and
place the object you want to
When you name a graphics file resize on the form. Choose
for the application, enter Objects|Line and drag a line
requestn, where n indicates an from the top right corner
identifying number. If you have through the bottom left corner
multiple graphics on an (and extend it beyond the
application, the file names object boundaries).
would be REQUEST1.OVG,
REQUEST2.OVG, and so on. Select the object and drag the
bottom left corner handle along
the diagonal guideline to the
size you want

Preface Page 40

"SIZES.EPS", width = 25 picas

Figure 53: Examples of graphics sized proportionally using a
diagonal guideline

Adding color to a form Using reverse type for emphasis

Color can enhance a form's You can create reverse type,
visual appeal and also attract white text on a black
attention to important areas of background, for special
the form. emphasis on your forms.

You can make a color rectangle Use a graphics application,
in Paintbrush, select it, cut such as Paintbrush, to type
or copy it to the Clipboard, white letters onto black
and place it on a form by shapes.
choosing Objects|Graphic in the
Form Tool. If you place graphics inside a
field, be sure you test it in
After you have placed this form completion mode. Graphics
graphic, resize it to fit. Once don't display when the field is
a graphic is on the form, you selected if the bitmap image is
can copy and paste it placed in the area where values
repeatedly. are entered or selected

Printing color graphics is
covered in detail starting on
page 47

"REVERSAM.EPS", width = 24 picas

Figure 54: The question mark in the Use field indicates Help is
available for the field

Saving Clipboard contents Once the graphic is on the
Clipboard, open the Clipboard,
If you want to paste the same choose File|Save As, type a
graphic into multiple file name for the Clipboard
applications or during contents, and choose OK. The
different sessions, save it in default extension for a
the Clipboard. Clipboard file is .CLP.

For example, you might need to You can choose File|Open in the
repeatedly paste the same Clipboard to retrieve this .CLP
company's logo into your file any time you want to paste
applications. it into an application

Preface Page 41


Mouse shortcuts for editing Clipboard are, you can use a
trees temporary field to view them.

In the Form Tool or the Tree In the Form Tool, create a
Tool you can double-click a field called Scratch, open its
decision tree, and press
o Branch node--to edit a Shift+Ins whenever you want to
branch node using the view the contents of the Tree
Field name dialog box Clipboard. Make any changes you
want, re-copy it and then paste
o Condition--to edit a it into its final location.
condition using the
Condition dialog box If you use this technique, be
sure to delete Scratch when you
o Conclusion--to edit a finish designing your
conclusion using the application
Conclusion dialog box.

The exception is that Viewing long expressions
the Conclusion dialog
box doesn't appear when If you are having trouble
an empty conclusion node correcting a long expression
is clicked that is giving you error
messages, use Notepad to edit
Pasting functions and field
names To try this, open the Tree Tool
and choose Tree|Select. Select
In the condition and conclusion one of your fields that has a
dialog boxes, using the long decision tree and choose
Paste|Function button reduces OK. Double-click a condition or
the need to remember exact conclusion to open the
function names and argument Condition or Conclusion dialog
lists. Also, Paste Arguments box.
guides you in placing arguments
in the correct sequence. Highlight the expression, copy
or cut it to the Clipboard, and
Using the Paste|Field button then paste it into Notepad.
eliminates the need to remember This lets you view the entire
exact field names or expression at once.
punctuation rules for field
names. When special characters You can also edit the
such as single-quotation marks expression in Notepad. To paste
appear in a field name, the the changes into ObjectVision
required field name formatting when you finish, select the
is automatically inserted into expression, copy it to the
the expression Clipboard, and paste it back
into the Conclusion dialog box.

Viewing contents of the Tree
Viewing trees
If you forget what the most
current contents of the Tree If you just entered a condition
or a conclusion and the Tree

Preface Page 42

Tool windows doesn't display the If the enlarged tree requires
entire tree, choose View|Expand too much scrolling to view it,
to enlarge the display. maximize the window by clicking
the Maximize button

"LILTREE.EPS", width =18 picas

Figure 55: The condition for this tree isn't displayed because
the view is too small

"BIGTREE.EPS", width = 24.5 picas

Figure 56: Choose View|Enlarge until the entire decision tree

Determining value types Choose Tree|Close Tool and
Form|Close Tool to test your
function fields. Choose Edit|Clear All,
ObjectVision stores a field and select the Dummy for Data
value as one of four different Type field.
data types. You can use the
@TYPE function to determine Then type a value in the Dummy
what data type has been entered for Data Type field and press
as a field value. Enter. The corresponding data
type code for the value you
@TYPE returns one of four codes just entered appears in the
indicating the data type of a Data Type field.
Note that if you press Enter
o 1--numeric value without first typing a value,
o 2--text value NA is the value of Data Type.
o 3--logical value To try it again, remove both
o 16--error value values by choosing Edit|Clear
To use @TYPE, create two fields
in the Form Tool: Dummy for
Data Type, and Data Type. Otherwise in selection lists

Double-click the Data Type You can include the word
field name, and choose Otherwise as a selection list
Objects|Branch. Select Dummy value if you precede it with
for Data Type from the list in the single-quote character.
the Field Name dialog box, and
press Enter. Since Otherwise is an
ObjectVision keyword, it isn't
Then choose Objects|Conclusion, included in an automatically
type <>"" for the condition to generated selection list. By
make sure the field isn't including the single-quote
blank, and choose OK. For the character, however, you are
conclusion, type @TYPE(Dummy forcing the word Otherwise to
for Data Type) and press Enter be recognized as a string
again. value.

Preface Page 43

It's OK to have both the To prevent NA from appearing in
selection list value 'Otherwise a field, select the field, and
and the keyword Otherwise in choose Tools|Tree to edit its
the same tree decision tree. Click its
conclusion node, then choose
Objects|Conclusion and type
Handling values Otherwise for the new
condition, and then press
When a decision tree encounters
a value it can't handle, it You can press Enter for any
returns the special value NA conclusion you just want to
(Not Available). leave empty.

You can use ObjectVision's A handy function you might try
special condition expression instead for the conclusion is
Otherwise in your decision @MESSAGE. By typing
trees to handle any conditions
you haven't explicitly defined. @MESSAGE("And a string
""message"" as an argument!")
In the Determining value types
example above, NA appears as ObjectVision alerts the user
the value of Data Type whenever whenever an invalid value is
a user presses Enter without entered
typing any value in the Dummy
for Data Type field.

"FLDMESSG.EPS", width = 18 picas

Figure 57: When a null value is entered, Data Type displays this

"MESSAGE.EPS", width =21 picas

Figure 58: Any value other than a null value returns a data type


Matching fonts Note that Windows substitutes
the size 10 System font with
You can match your field name your printer's default font--
and text object fonts with the typically 12 point Courier--
default font used for user's when you print.
In the Form Tool, select the
The default font for values object that has font properties
displayed in a form and help you want to change. Then choose
text is size 10 System. The
default field name and text o Properties|Label Font--
object font is size 8 to change the font for a

Preface Page 44

selected field name or Control Panel in the Program
text object. Manager's Main Group.

o Properties|Name/Text--to Open the Control Panel, open
change the name of a Printers, and a list of your
field installed printers appears in
the installed Printers window.

Printing different form sizes To change your printer
settings, choose Configure.
If you design a form longer When the Printers-Configure
than the printer's selected window appears, choose Setup.
paper size, only part of the The title for this window
form is printed. displays the name of the
current printer.
After printing, you can
determine whether you want to You can change the page size to
cut and paste to rearrange the 11"x14" or another setting. You
form or enlarge the printer's can also change the orientation
Page Size setting. to Landscape or Portrait

To change your printer or your
printer settings, use the

"PRINTSET.EPS", width = 23 picas

Figure 59: Printer configuration and setup windows

Creating a design template maximized ObjectVision window
and another that's the depth of
You can create a form with the window. Move the vertical
layout guidelines to use for field to the bottom of the
precise positioning of objects. window and stretch it up to the
top (repeat this a few times).
ObjectVision fields and lines
are all based on the System Select both fields, choose

font Windows uses. The first Properties|Field Type, and
thing to determine is the uncheck the Display Field Name
number of System font option. Then close the Form
characters your printer can Tool so you can type the System
print across the width of the fill-in font into your new
paper size you use. Then fields.
determine the number of lines
it can print down the length of In the horizontal field, type 9
the page. periods followed by a 1, then 9
periods followed by a 2, and so
Typically, the maximum line on to create a System font
length that prints horizontally ruler. For the vertical field,
is 79 System font characters type a period, press Ctrl+Enter
and the maximum number of to start a new line, type
vertical text lines is 65 (on another period, and so on to
an 81/2"x11" sheet of paper). create a vertical ruler.

In the Form Tool, create one Save and print this form.
field that's the width of the Experiment by printing each

Preface Page 45

change you make to determine You can refine your template by
your printer's maximum image using lines and text objects to
area for each paper size you mark all boundaries important
use. Once you find it, choose to designing your form, such as
Tools|Form so you can copy the the
horizontal and vertical rulers
to the bottom and right edge of o header
the image area. o footer
o left margin at 1"
Open this template as the first o right margin at 8"
step in your design process. Be o 3-hole punch allowance
sure to choose File|Save As to o standard company logo
keep the original template position v
intact, and then delete all
template guidelines from the
new form.

"SYSRULER.EPS", width = 25 picas

Figure 60: These ruler fields are the basis for a precise,
printer-specific design template

Using Printer view fine tune small details that
aren't obvious in Screen view.
After you finish your first For example, you can more
draft of your form, choose precisely position text objects
View|Printer to see a close that are placed close to
approximation of how it will fields.
An example of this is found in
Printer view more closely the sample application W4Form.
matches the higher resolution Notice how the text objects and
of printers than Screen view. their visual relationships to
If your form fills the window fields are represented in
in Screen view, you'll need to Screen view compared to Printer
scroll to see all of it in view. Look closely at line six
Printer view. in Figure 61--in Screen view,
three periods follow the text
This increased fidelity to your and in Printer view, seven
printer's capabilities lets you periods follow the text

"SCRNPRNT.EPS", width = 25 picas

Figure 61: W4Form shown in Screen view (top) and Printer view

Printing button locations When a button is a significant
element on the form, you can
You can add a filled rectangle place other, printable objects
and a text object to indicate under the button.
the location of a button on a

Preface Page 46

The objects underneath don't Graphic images you create with
display on screen, but unlike this palette can be simply cut
the button, they will print or copied to the Clipboard
without any conversion

Printing Paintbrush bitmaps
Printing Corel Draw bitmaps
If your Paintbrush graphics
aren't printing, but they do When you create a graphic image
display on screen, convert the in Corel Draw, no conversion is
image to monochrome. necessary to paste it in into
ObjectVision doesn't print the ObjectVision.
.BMP color files created by
Paintbrush. If you have a color printer,
the graphic image will print in
If you have an existing color. If your printer is a
Paintbrush .BMP color file, monochrome PostScript printer,
open the file in Paintbrush and the image is automatically
select any portion of the image converted to black and white.
to convert the entire image to
monochrome. You can create circle,
rectangle, and text objects,
Then choose File|Save As, type but lines are not copied or cut
a new name, and choose the to the Clipboard
Options button. Set Save As to
the Monochrome bitmap option
and choose OK. Printing Designer bitmaps

To open your new monochrome Designer files work just like
version of the graphic, choose Corel Draw files, with one
File|Open, and choose the new exception:
file name you just created.
Select the portion of the image You can create a graphic with
you want to copy to the any objects (including lines)
Clipboard and press Ctrl+Ins. and copy or cut to the
When you paste this graphic
into ObjectVision, it will
display as a monochrome graphic Printing from the File Manager
Don't. Instead, use Notepad or
Write, both of which are
Creating monochrome Paintbrush supplied with Windows.
Although the Windows
If you want to create multiple documentation states you can
monochrome Paintbrush files, print text files from the File
open the Options menu in Manager, files printed to a
Paintbrush and select the Image PostScript printer this way
Attributes command. don't print the entire file.

Set Image Attribute to Black Also, trying to use the Program
and White and then choose OK. Manager File|Run command with
the DOS print command copy
After you choose File|New, filename lpt1 displays this
Paintbrush replaces the default Application Execution Error
color palette with a monochrome message:

Preface Page 47

Cannot find file; check to If you aren't sure where the
ensure the path and filename file is, use the File Manager's
are correct File|Search command to locate
Similarly, if you open the DOS
Prompt icon and type copy
filename lpt1, network problems
can arise.


Securing database records Restructuring database tables

You can use the security To restructure an existing
features built into the database table, use the
database tables your database application itself.
applications are linked to.
If you are using ObjectVision
For example, Paradox lets you to create a new database table,
have Master and Auxiliary your current form determines
password protection that is the database structure.
also supported by ObjectVision.
Once a database is created,
In ObjectVision, if you have a however, any changes you make
Paradox table that is protected such as field width has no
with a password, the Paradox effect on the database
Engine prompts the user for the structure. If you revise the
password before proceeding form and create another table
based on it, the new table
won't have any data in it


Understanding dummy fields Field Name dialog box
appears, double-click
You can create a field that , and
holds a value, but only appears then enter the new field
in a branch node, a condition, name.
a conclusion, or a link.
o Condition--choose
This is a useful technique when Objects|Conclusion. In
you want the field to act as a the Condition dialog
placeholder for a value and it box, type +fieldname,
isn't a field users need to where fieldname is the
see. name of a new field.

In the Form Tool, select a o Conclusion--choose
field you want to create a Objects|Conclusion. When
decision tree for, and create a the Conclusion dialog
dummy field in a box appears, type
+fieldname, where
o Branch node--choose fieldname is the name of
Objects|Branch. When the a new field.

Preface Page 48

Link-- choose Connect. form, you can still display its
When the Field Name current value.
dialog box appears,
double-click Field>, and then enter completion mode, with the
the new field name. application loaded, choose
Field|Find. Choose the deleted
Dummy fields are used in tips file's name from the list in
throughout this book, such as the Field Name dialog box.
on page 43, (Determining value
types); page 24, (Creating a The field appears on the
flexible selection list), and Scratchpad form and its current
page 53, (Entering a valid value is displayed.
If the field is on a form, that
form is selected and appears in
front of any other form
Showing hidden values

After you delete a dummy field
you don't want displayed on a


Displaying check box fields Multiple sets of automatic
When a field you created as a
Check Box field type displays When creating a second link in
as a Selection List field, an application, you can
enlarge the field size. automatically create a second
set of buttons on a form if you
ObjectVision defaults to the first rename the original set
selection list display if a of buttons.
field is too small to display
all the check boxes and check When the original set of
box values buttons is not renamed, the
second set of buttons is not
created, because field names
Checking multiple options must be unique.

You can have the appearance of To change a button's name, open
a check box field that lets you the Form Tool and select the
check multiple values in a button. Then, choose
list. Properties|Name/Text, and enter
a different name
Although the check box field
type lets users check a single
value in its list, you can Branching with buttons
create multiple check box
fields and position them so This approach lets you have a
they appear to be a single single button on a form that
check box field. can activate multiple links.

To create this effect, set the Managing multiple button names
properties of the fields so the is avoided for both the
border doesn't display application designer and the

Preface Page 49

user. Instead,the decision 5. Select the Branch Button
tree for the button evaluates form again and select
the value in a check box field Field1A. Choose
to determine which link to Properties|Field, choose
activate. , and
enter Link2A as the new
This concept enhances the field name. Repeat this
visual simplicity of the form, to add the other two
and can be used for both simple fields as new fields
and complex linking functions. named Link2B and Link2C.

The button could activate 6. Choose Tools|Links and
either of two links that write create a Paradox link
data to different databases; named Link Two to a new
or, it could activate either of database table named
two secondary indexes to the Line2. Let ObjectVision
same database to let users create the database, but
scroll through the information not the automatic
from different perspectives. buttons. Choose OK to
close the Links Tool.
1. To create this example,
first choose Tools|Form 7. Select the three fields
and create a form named on Temp, press
Branch Button. Create Shift+Del, then paste
three fields named them back into Branch
Field1A, Field1B, and Button above the
Field1C. buttons.

2. Choose Tools|Links and 8. Choose Tools|Stack,
create a Paradox link select Temp, and choose
named Link One to a new Edit|Cut to delete it.
database named Line1. Choose Stack|Close Tool
Let ObjectVision create to return to the Form
the database and the Tool.
automatic buttons.
9. Select the Enter button,
3. Choose OK to close the choose Tools|Tree, and
Links Tool dialog box press Shift+Del to cut
and return to the Form the existing conclusion.
Tool. Next, create a new Choose Objects|Branch,
form named Temp to hold then choose a temporary copy of the Field> from the Field
three fields on the Name list. Enter Which
form. Position the two Link as the new field
forms so they're both name.
10. Choose
4. Select all three fields, Objects|Conclusion,
press Shift+Del, press enter Link One as the
Shift+Ins, and paste a condition, and enter
copy of the three fields @STORE("Link One") as
below the buttons. Then the conclusion.
select the Temp form and
press Shift+Ins to store 11. Choose
a copy of the fields Objects|Conclusion
temporarily while you again, enter Link Two as
create the other link. the condition, and enter

Preface Page 50

@STORE("Link Two") as 14. Repeat this paste and
the conclusion. edit operation for each
of the buttons.
12. You've finished this
tree and can use it to 15. Choose Objects|Field,
quickly create all the choose Which Link from
other decision trees. the Field Name list, and
Now, select the root place it on the form.
node of the tree and Choose Properties|Field
press Ctrl+Ins. Type, and choose Check
Boxes from the Field
13. Choose Tree|Select, Type list.
choose Next, and then
choose Edit|Cut to To try this out, choose
delete the existing Form|Close Tool. Type data into
tree. Press Shift+Ins to the Field1 series of fields,
paste the Enter tree, click Link One as the link,
and edit it so it's then choose Enter. Do the same
appropriate for the Next for Link Two
button. Replace the
conclusion @ENTER with

"BUTTTREE.EPS", width = 19 picas

Figure 62: The decision tree for the Enter button

"BUTTFORM.EPS", width = 19 picas

Figure 63: The finished Branch Button form

Creating a flexible Form Clear Create seven fields, named
button First name, Last name, Street
address, City, State, Zip Code,
You can create a button field and Flexible Form Clear.
that selectively clears an
application's fields (like Select the Flexible Form Clear
Form|Clear All, but with field, choose Properties|Field
flexibility). Type, select Button, and then
choose OK.
When users choose the button,
values are cleared from all Next, create the "master copy"
specified fields. Basically, of the decision tree. Select
you create a button field and a the First Name field, choose
decision tree, then you copy Tools|Tree, choose
the decision tree (and modify Objects|Branch, and double-
it) for each field you want click the Flexible Form Clear
cleared. field name.

To test this, choose Tools|Form Then choose Objects|Conclusion.
and create a form named Test When the condition dialog box
Form Clear button. appears, type No and choose OK.
When the conclusion dialog box

Preface Page 51

appears, type +First name and Choose Edit|Paste, then
choose OK. double-click the conclusion
triangle, edit the +First name
conclusion to read +Last name,
Choose Objects|Conclusion and then choose OK.
again, type Otherwise for the
condition, press Enter, type Repeat this paste and edit for
@BLANK for the conclusion, and each field you want the
then choose OK. Flexible Form Clear button to
clear. If you forget which
Now you can copy this tree and field you're editing the
modify it for any field you conclusion for, just edit the
want to clear. Select the conclusion to match the name at
Flexible Form Clear root node the top of the conclusion
and then choose Edit|Copy. dialog box.
Choose Tree|Select, select the
Last name field, then choose To test your button, choose
OK. Tree|Close Tool, and then
Form|Close Tool

"CLERTREE.EPS", width = 24 picas

Figure 64: This is the master copy of the decision tree

"CLEARALL.EPS", width = 20 picas

Figure 65: Only First name, Last name, Street address, and City
have the edited version of the tree

"DONTCLER.EPS", width = 20 picas

Figure 66: Only the values in State and Zip code display after
pressing the Flexible Form Clear button

Defining a picture for state To assign a picture to the
abbreviations field, choose Properties|Field
Type, and double-click Picture.
You can use the ampersand "&" After the Picture String dialog
picture match character in a box appears, type && and choose
picture field to ensure the OK.
user enters two capital letters
for a state abbreviation. To test this field, choose
Form|Close Tool, and then
Choose Tools|Form to open the select the State field. Note
Form Tool. Choose the underline in the field
Objects|Field, select Field>, type a field name such assigned to this field.
as State, choose OK, and place
the field on the form. The Try typing a number or
field only needs to be as wide lowercase letters into this
as the field name. field. All letters appear in

Preface Page 52

the field as uppercase, and
numbers are not accepted

"UPPERPIC.EPS", width = 21 picas

Figure 67: The match characters for uppercase letters

Entering a valid date Objects|Conclusion again, type
Otherwise for the condition,
function and press Enter.
You can build a decision tree
that makes a field accept only For the conclusion, create a
a valid date entry. two-line expression that gives
the user an error message and
function clears the value from the
Choose Tools|Form to create a field. Type the following as a
new form (or place the single line:
following fields on an existing
application's form). @MESSAGE("Whoops! That's not
a valid date.")
Create two new fields--a field
named Date Type and a field
named Valid Date that will hold Then press Ctrl+Enter to move
only a value that is a valid to a new line in the
date. With Valid Date selected, expression. Type @BLANK, which
choose Properties|Field Type, removes the value from the Date
double-click Date/Time, and Type field, and choose OK when
then double-click one of the you finish. Choose Tree|Close
five date formats at the top of Tool, choose Form|Close Tool,
the list. and then choose Edit|Clear All
to test your new fields.
Double-click the field name to
open the Tree Tool for Date @BLANK clears the field of the
Type. Choose incorrect date after the user
Objects|Conclusion, type clears the error message, so
@TYPE(Valid Date), and then the user must enter another
choose Enter. value (assuming they are
pressing Enter to use guided
Double-click the field name to completion).
open the Tree Tool for Valid
Date. Choose Objects|Branch, Once you have seen how it
and double-click Date Type to works, choose Tools|Form,
choose it as the field name. select the Date Type field, and
delete it by pressing
Choose Objects|Conclusion, type Shift+Del.
1 for the condition, and then
choose Enter. For the The field isn't deleted from
conclusion, type +Valid Date the application, it's only
and choose Enter. Choose removed from the form

"DATETYPE.EPS", width = 17.5 picas

Figure 68: The decision tree for Date Type

Preface Page 53

"WHPSTREE.EPS", width = 20 picas

Figure 69: The decision tree for Valid Date

"WHOOPS.EPS", width = 21 picas

Figure 70: The error message displayed by @MESSAGE

Passwords for buttons Objects|Conclusion, and after
the condition dialog box
You can limit the use of any appears, type the password you
button on a form by requiring a want, such as
password as part of that
button's decision tree. I've got rights!

For example, you can create a and choose OK. After the
form and link it to a database conclusion dialog box appears,
using the Tools|Links command. type the @STORE("Link Name")
After creating the database and expression you deleted earlier
the automatic buttons, choose and choose OK. Choose
Tools|Form to edit the form. Objects|Conclusion again, enter
Otherwise for the condition,
First, choose Objects|Field, and the enter @MESSAGE("That's
double-click , not the password!") for the
type the name Password, and conclusion.
choose OK. Place this field on
the form. It will hold the Choose Tree|Close Tool, and
password typed by the user. then Form|Close Tool to test
your new password-protected
Next, select the Enter button button.
that was created automatically,
choose Properties|Name/Text, When you choose the Password
edit the button name so it is Enter button, it still performs
Password Enter, and choose OK. the on-screen depress action.
But if the value in the
Resize it so its complete name Password field isn't valid, the
appears on the button. Double- records aren't written to the
click the Password Enter button database.
and press Del to delete its
conclusion node. You might create a dummy field
to determine whether the
Choose Objects|Branch, and password matches and hide that
double-click the Password field field using
name. Then choose Properties|Protection

"PASSTREE.EPS", width = 19.5 picas

Figure 71: This is the decision tree for the Password field

Preface Page 54

"OOPSPASS.EPS", width = 20 picas

Figure 72: This message appears if an incorrect password is

Preface Page 55

Preface Page 56

Appendix A

ObjectVision Special Interest Groups (SIG)

Another way of getting useful ObjectVision tips and techniques is
to become a founding member of an ObjectVision SIG.

Borland encourages the formation of SIGs and has a program to
support the development and growth of these user groups.

If you are interested in forming a SIG, call our Users Group
Programs Manager at

(408) 438-8400

or send a letter to

Borland International, Inc.
User Group Programs Manager
1800 Green Hills Road
Scotts Valley, CA 95067

Preface Page 57

Preface Page 58

Appendix B

ObjectVision menus

The following pages show the complete menus for the main
ObjectVision window and each of the Tool windows (except the
Links Tool).

When a command name is mentioned in this booklet, it is usually
written as Menu|Command to identify which menu the command
appears on.

Preface Page 59

Form Tool menus

Preface Page 60

Stack Tool menus

Preface Page 61

Preface Page 62


4096 character limit 19 @BOTTOM function 31-32
1350 bytes per record branch, editing 42
20 branching, to different forms
3-hole punch allowance 16, 17
45 button
Bottom 32
A Clear 23
About Help command 6 Connect 21
accented characters 30 Form|Clear All 51
option Next 32
10 Previous 32
alignment 12-13 Top 32
Alt+ - in Paradox 5 button names, as arrows
Alt+F4 8 32
Alt+H shortcut 4 buttons
& operator 34 automatic creation
Annotate command (Help of 49
window) 7 branching with 49-51
ANSI character set password protected
30-31 54
ANSI code 30-31 printing location of
Application Shortcut 46
Key 39 with multiple links
applications 49
copying to disk 36
memory limits of 6 C
switching 39 capitalization 35
argument separator 31 cell address 28
arrows, as button names character set
32 ANSI 30-31
ASCII IBM PC Extended 31
sort order 21 characters
time formats 34 currency 31
AUTOEXEC.BAT file 3 international 30-31
automatic tables, creating check boxes
23-24 insert fields
Auxiliary password 48 displaying 49
multiple 49
B Clear All command 9
bitmaps 41 @CLEAR function 9
@BLANK 13, 52, 53 Clear command 9
.BMP file 47 client/server in DDE
bookmarks, Help window 29-30
7 Clipboard
Border command 8 for copying
Borders command 13 expressions 42
Borland, how to contact for importing text
2, 57 37
@BOTTOM 32 saving graphics 41

Preface Page 63

used for DDE decision trees
information 30 copying 51
clock, computer 33 hiding 14
@CLOSE 27 viewing Clipboard in
.CLP files 41 42
code, ANSI 30 Define command 7
color graphics delimiter marks 28
for emphasis 41 design template 45
printing 46-47 Designer graphics 47
commands dialog box 37
help screen for 6 scrolling lists 37
highlighting 6 disabling a button 54
computer clock 33 Disconnect button 21
concatenation (&) disk space 5
operator 34 documenting
conclusion 42 applications 18
condition 42 using Help 18
Control Panel, printer drop shadows 13
settings 45 dummy fields 48
controlling values, using
pictures for 52-53 E
Corel Draw graphics 47 enlarging
Courier font 44 fields 11
Ctrl+Enter 7 forms 10
Ctrl+Esc shortcut 39 objects 11
Ctrl+Ins shortcut 10 tree displays 42
Ctrl+Insert 37 Enter key 9
error 5
D error message
data type 43 Primary sort index
databases out of date 21
browsing 32 Record too big 20
designing 48 examples
first and last birthdate 33
records in 31-32 branching button 49
linking to 19-27 branching using
records, securing 48 check box 17
@DATE 33 launching a form 16
date values 32 Required 13
dates Scratch decision
calculating 33 tree 42
entering valid 53 skipping fields 15
.DB file extension 36 valid date 53
.DB files 40 zip code 24
.DBF files 40 Excel, linking to 28-29
DDE applications, adding .EXE files 3
to PATH 3 Expand command 42
DDE links 3, 29-30 expressions
defining a name 28 new lines in 36
Excel 28 viewing 42
range of cells 28 [extensions] section of
recycling 27 WIN.INI 39
single cell 28
to Word for Windows F
30 F1 6
@DDEOPEN 7, 27 for help 37
decimal separator 31 in ObjectVision Help

Preface Page 64

field File|Search command 47
Fixed type 19 files
General type 19 backing up 36
field check box 49 .CLP 41
Field|Find command 15 deleting 5
field names deleting to save
displaying 10, 14 disk space 5
placing 12 .PIF 38
short, to reduce typing Fill Pattern command 13
14 filled rectangles 13
WYSIWYG 10 indicating button
field order 9 locations in 46
field precedence 9 fonts
field-specific help 8 Courier 44
field type default printer 44
bytes used 20 label font 10
default 49 matching 44
Fixed 33 System 44
selection list 10 too large for field
Field type command 33 10
field values Form Clear button
overriding 14 example 51-52
replacing 9 form design 9-37, 41
fields automatic database, creating
automatically 48
skipping 15-17 documenting 18
deleting 15 field names in 12
dummy 48 template 45
enlarging forms with Form Tool 9
10 forms
first on a form 10 clearing 10, 51
key 19, 21 in Stack Tool 10
limit of 19 larger than screen
measuring length of 10-11
20 multiple links on 21
naming large groups names, changing 10
of 14 printer image area
order of 8, 10 of 45
pasting on a form 10 function
precedence of 8 @BLANK 13, 52, 53
removing from lists @BOTTOM 31
15 @CLEAR 9
required 13 @CLOSE 27
size limit of 19 @DATE 33
file @DDEOPEN 27
.BMP 47 @HOUR 34
graphics 36 @INT 33
lock (.LCK) 5 @LEFT 35
WIN.INI 5, 39 @MESSAGE 44, 53
file extensions, Paradox @MINUTE 34
36 @NOW 33, 34
File Manager 47 @RIGHT 35
Copy command line 36 @SECOND 34
copying files with @STORE 21, 54
36 @TOP 31
printing from 47 @TYPE 53
Properties command 4 @UPDATE 21

Preface Page 65

functions, Help window label, forcing with single-quote
6 43
layout guidelines 45
G .LCK file 5
gateway application 29 @LEFT function 35
graphics @LENGTH 20, 35
copying and pasting Line command 40
41 linking
inside a field 41 ObjectVision to
labeling help field ObjectVision 29-30
with 8 through DDE 3, 27-30
naming as family 40 to Excel 28-29
saving 40 to WinWord 30
sizing links 3, 27-30
proportionally 40 buttons for 54
graphics applications dummy fields in 48
Corel Draw 47 multiple 21
Designer 47 list items, locating 37
Paintbrush 41, 47 list separator 31
guided completion 8, 9 locating records
guidelines automatically 21
layout 45 lock files, deleting 5
proportional sizing lookup field 23-24
H Master password 48
handles, dragging 40 match character 52-53
Help 6-8 memory use limits 6
for Windows 37 @MESSAGE 13, 44
Help Index 37 @MESSAGE function 53,
hidden fields 49 54
highlighting, commands @MINUTE 34
6 Modify button 15
Home key 9 monochrome graphics 47
@HOUR function 34 mouse shortcuts 42
multiple links
I activating 21
IBM PC Extended branching to 49
character set 30 multiple page forms 17
icons 4, 39 multiple selection
importing text, using Windows assigning properties
37 9
index changing group
editing key value 21 properties 14
split 24 Ctrl+click 9
installing, SHARE 3 Ctrl+Tab 9
@INT 33 editing groups 9
international Shift+click 9
characters 30
International icon 31 N
international sort NA special value 44
order 21 naming a cell 28
navigating fields 9
K network
key fields 8 sharing applications
numeric 19 5
sort order 23

Preface Page 66

sharing Paradox Paste Arguments option
files 5 42
network configuration Paste|Field button 42
Paradox Engine 4 Paste|Function button
networks, SHARE command in 42
3 pasting graphics 41
new line PATH command 3
in expression 36 path name
in Help text 36 for .OVG files 40
@NEXT 32 picture fields, match characters
nodes in 52
copying 36 PIF Editor 38, 39
non-Windows applications, .PIF files 38, 39
setting up 38 precedence field 8
Notepad, editing long @PREVIOUS function 32
expressions with 42 printer
notes, adding to Help topics setup 45
7 view 46
@NOW 33, 34 Printer command 46
null values 15 printing
color graphics 47
O from File Manager 47
ObjectVision, linking to legal size 45
ObjectVision 29-30 monochrome graphics
ObjectVision Special 47
Interest Group 57 Paintbrush bitmaps
operators 47
& 34 previewing with
Otherwise 44 View|Printer 46
.OVD files 40 text files in
.OVG files 40 Windows 47
printing bitmaps
P Corel Draw 47
page length 45 Designer 47
pages, calculating 33 Program Manager, File|Properties
Paintbrush graphics 47 command 3
paper clip (Help properties
window) 7 alignment 12
Paradox multiple selection
Alphanumeric fields 7, 12
19 protection 14
limits 20 text objects 12
maximum number of Properties|Title
tables 4 command 10
sort order 21 proportional sizing
Paradox 3.5 of graphics 40
under Windows 38 Protection command 14
Paradox Configuration .PX file extension 36
icon 3
Paradox engine 4-5 Q
PARADOX.NET 3, 5 quotation mark, single
location using for field names 21
Paradox 5 selection list
password values 43
for buttons 54
Paradox Auxiliary 48 R
Paradox Master 48 recycling DDE links 27
prompting for 48 Reduce command 42

Preface Page 67

remote name 29 Special Interest Group
replacing text 9 (SIG) 57
resource limits, of Paradox special value NA 44
Engine 4 spell checking text 37
resources, increasing limitssplitting an index 21
of 4 Stack Tool 10
reverse type 41 state abbreviations 23,
@RIGHT function 35 52-53
state code example 23
saving @STORE function 54
blank forms 9 string concatenation 34
defined names 28 System font 44
Screen view 46 size 45
@SECOND 34 type specifications
Select command 36 45
selection list values Windows 45
selection lists T
automatic 43 Tab key 9
flexible 24-27 tables, restructuring
Otherwise in 43 48
positioning 10 Task List 6, 39
separator characters 31 template for form
serial number 33 design 45
serial numbers 32 text
shadows alignment 12
drop 13 concatenation 34
SHARE command 3 importing 37
SHARE.EXE 3 replacing 9
Share Local Table 5 selecting 9
Shift+arrow keys spell checking 37
stretching objects text objects 12
with 11 default font 44
Shift+Del 37 time
Shift+End shortcut 9 formats 34
Shift+Ins 37 values 33
Shift+Ins shortcut 10 @TOP 31, 32
shortcut keys Tree|Select command 15
copy 10 Tree Tool, copying nodes with
for lists 37 36
non-Windows trees
applications 39 editing 42
paste 10 viewing 42
shortcuts type, special effects
Help window 7 41
mouse 42 @TYPE 43, 53
showing hidden fields
49 U
single-quote characters @UPPER 35
for field names 21
sort order V
ASCII 19, 21 values
International 21 as stored 32
special condition, Otherwise capitalizing first
44 letter of 35
date 32

Preface Page 68

placeholder for 48 help 37
time 32 icons 3
value type 43 Paradox 3.5 and 38
view .WMF files 47
Printer 46
Screen 46 X
.X?? file extension 36
Windows .Y?? file extension 36
desktop 3

Preface Page 69


Preface 1

SETTING UP . . . . . . . . . . . . . . . . . . . . . 3
Adding DDE applications to your PATH . . . . . . . 3
Installing SHARE . . . . . . . . . . . . . . . . . 3
Browsing for icons . . . . . . . . . . . . . . . . 3
Switching ObjectVision icons . . . . . . . . . . . 4
Setting Paradox Engine resources . . . . . . . . . 4
Getting Paradox Engine Help . . . . . . . . . . . 4
Understanding PARADOX.NET . . . . . . . . . . . . 5
Locating PARADOX.NET . . . . . . . . . . . . . . . 5
Deleting lock files . . . . . . . . . . . . . . . 5
Deleting files for more disk space . . . . . . . . 5

USING HELP . . . . . . . . . . . . . . . . . . . . . 6
Checking application limits . . . . . . . . . . . 6
Getting help for commands . . . . . . . . . . . . 6
Keeping Help handy . . . . . . . . . . . . . . . . 6
Help bookmarks . . . . . . . . . . . . . . . . . . 7
Adding notes to Help topics . . . . . . . . . . . 7
Closing Help . . . . . . . . . . . . . . . . . . . 8
Labeling fields with help . . . . . . . . . . . . 8

CONTROLLING NAVIGATION . . . . . . . . . . . . . . . 8
Understanding field order . . . . . . . . . . . . 8
Who's on first? . . . . . . . . . . . . . . . . . 8
Building navigation into applications . . . . . . 9

DESIGNING FORMS . . . . . . . . . . . . . . . . . . . 9
Selecting multiple fields . . . . . . . . . . . . 9
Clearing forms . . . . . . . . . . . . . . . . . . 9
Replacing highlighted text . . . . . . . . . . . . 9
Changing form names . . . . . . . . . . . . . . 10
Displaying field names . . . . . . . . . . . . . 10
Pasting fields on a form . . . . . . . . . . . . 10
Positioning selection lists . . . . . . . . . . 10
Stretching a form . . . . . . . . . . . . . . . 10
Stretching field objects . . . . . . . . . . . . 11
Placing field names . . . . . . . . . . . . . . 12
Aligning text . . . . . . . . . . . . . . . . . 12
Creating drop shadows . . . . . . . . . . . . . 13
Making a field entry required . . . . . . . . . 13
Restricting users . . . . . . . . . . . . . . . 14
Using short, addressed field names . . . . . . . 14
Deleting fields completely . . . . . . . . . . . 15
Skipping fields . . . . . . . . . . . . . . . . 15
Launching another form . . . . . . . . . . . . . 16
Branching to different forms . . . . . . . . . . 17


Documenting Applications . . . . . . . . . . . . 18

LINKING TO DATABASES . . . . . . . . . . . . . . . 19
Using key fields . . . . . . . . . . . . . . . . 19
Recognizing field size limits . . . . . . . . . 19
Measuring field length . . . . . . . . . . . . . 20
Paradox limits . . . . . . . . . . . . . . . . . 20
Checking Paradox sort order . . . . . . . . . . 21
Activating multiple links . . . . . . . . . . . 21
Editing key fields . . . . . . . . . . . . . . . 21
Creating a scrolling lookup field . . . . . . . 23
Creating a flexible selection list . . . . . . . 24

LINKING THROUGH DDE . . . . . . . . . . . . . . . . 27
Using the power of @DDEOPEN . . . . . . . . . . 27
Naming each cell . . . . . . . . . . . . . . . . 28
Linking to Excel . . . . . . . . . . . . . . . . 28
Linking ObjectVision to ObjectVision . . . . . . 29
Linking to Word for Windows . . . . . . . . . . 30

INTERNATIONAL ISSUES . . . . . . . . . . . . . . . 30
Using international characters . . . . . . . . . 30
Argument separator . . . . . . . . . . . . . . . 31

@FUNCTIONS . . . . . . . . . . . . . . . . . . . . 31
First and last database records . . . . . . . . 31
Browsing a database . . . . . . . . . . . . . . 32
Arrows as button names . . . . . . . . . . . . . 32

DATE AND TIME FUNCTIONS . . . . . . . . . . . . . . 32
Understanding date and time values . . . . . . . 32
Storing precise time values . . . . . . . . . . 33
Calculating an age . . . . . . . . . . . . . . . 33
Calculating dates . . . . . . . . . . . . . . . 33
ASCII time formats . . . . . . . . . . . . . . . 34

STRING FUNCTIONS . . . . . . . . . . . . . . . . . 34
Concatenation . . . . . . . . . . . . . . . . . 34
Capitalizing the first letter . . . . . . . . . 35

USING EXPRESSIONS . . . . . . . . . . . . . . . . . 36
Copying nodes . . . . . . . . . . . . . . . . . 36
Starting new lines in expressions . . . . . . . 36

HANDLING FILES . . . . . . . . . . . . . . . . . . 36
Copying applications to disk . . . . . . . . . . 36
Backing up files . . . . . . . . . . . . . . . . 36

USING WINDOWS . . . . . . . . . . . . . . . . . . . 37
Getting Windows Help . . . . . . . . . . . . . . 37
Importing text . . . . . . . . . . . . . . . . . 37
Using shortcut keys for lists . . . . . . . . . 37
Running Paradox 3.5 under Windows . . . . . . . 38
DOS application shortcut keys . . . . . . . . . 39
Icons for applications . . . . . . . . . . . . . 39

ADDING GRAPHICS . . . . . . . . . . . . . . . . . . 39
Using the Task List . . . . . . . . . . . . . . 39


Saving graphics files . . . . . . . . . . . . . 40
Naming graphics as a family . . . . . . . . . . 40
Proportional sizing . . . . . . . . . . . . . . 40
Adding color to a form . . . . . . . . . . . . . 41
Using reverse type for emphasis . . . . . . . . 41
Saving Clipboard contents . . . . . . . . . . . 41

VALUES AND TREES . . . . . . . . . . . . . . . . . 42
Mouse shortcuts for editing trees . . . . . . . 42
Pasting functions and field names . . . . . . . 42
Viewing contents of the Tree Clipboard . . . . . 42
Viewing long expressions . . . . . . . . . . . . 42
Viewing trees . . . . . . . . . . . . . . . . . 42
Determining value types . . . . . . . . . . . . 43
Otherwise in selection lists . . . . . . . . . . 43
Handling values . . . . . . . . . . . . . . . . 44

PRINTING . . . . . . . . . . . . . . . . . . . . . 44
Matching fonts . . . . . . . . . . . . . . . . . 44
Printing different form sizes . . . . . . . . . 45
Creating a design template . . . . . . . . . . . 45
Using Printer view . . . . . . . . . . . . . . . 46
Printing button locations . . . . . . . . . . . 46
Printing Paintbrush bitmaps . . . . . . . . . . 47
Creating monochrome Paintbrush bitmaps . . . . . 47
Printing Corel Draw bitmaps . . . . . . . . . . 47
Printing Designer bitmaps . . . . . . . . . . . 47
Printing from the File Manager . . . . . . . . . 47

DESIGNING DATABASES . . . . . . . . . . . . . . . . 48
Securing database records . . . . . . . . . . . 48
Restructuring database tables . . . . . . . . . 48

USING DUMMY POWER . . . . . . . . . . . . . . . . . 48
Understanding dummy fields . . . . . . . . . . . 48
Showing hidden values . . . . . . . . . . . . . 49

USING FORM OBJECTS . . . . . . . . . . . . . . . . 49
Displaying check box fields . . . . . . . . . . 49
Checking multiple options . . . . . . . . . . . 49
Multiple sets of automatic buttons . . . . . . . 49
Branching with buttons . . . . . . . . . . . . . 49
Creating a flexible Form Clear button . . . . . 51
Defining a picture for state abbreviations . . . 52
Entering a valid date . . . . . . . . . . . . . 53
Passwords for buttons . . . . . . . . . . . . . 54

Appendix A ObjectVision Special Interest Groups
(SIG) 57

Appendix B ObjectVision menus 59
Main menus . . . . . . . . . . . . . . . . . . . 60
Form Tool menus . . . . . . . . . . . . . . . . 60
Tree Tool menus . . . . . . . . . . . . . . . . 61
Stack Tool menus . . . . . . . . . . . . . . . . 61

Index 63




Figure 1: The alternate ObjectVision icon and the
Paradox Engine Configuration icon . . . . . 4
Figure 2: Help text for the Paradox Engine
Configuration utility . . . . . . . . . . . 5
Figure 3: The Help|About window . . . . . . . . . . . 6
Figure 4: This arrangement keeps the Help information
right where you need it . . . . . . . . . . 7
Figure 5: Bookmark names you define in this dialog box
appear in the Bookmark menu . . . . . . . . 7
Figure 6: Click the paper clip symbol to display your
notes associated with the topic . . . . . . 8
Figure 7: The field names in this sample indicate the
field order . . . . . . . . . . . . . . . . 8
Figure 8: The default form size for a new form . . .11
Figure 9: By moving the field to the right, the form
automatically enlarges . . . . . . . . . .11
Figure 10: Resize the field to fill the new form
size . . . . . . . . . . . . . . . . . . .11
Figure 11: When you move the field again, scroll bars
appear . . . . . . . . . . . . . . . . . .11
Figure 12: To keep a field name from dislaying, uncheck
the Display Field Name option . . . . . .12
Figure 13: Text objects used as field name labels . .12
Figure 14: General and Check Boxes field type alignment
examples . . . . . . . . . . . . . . . . .13
Figure 15: Drop shadows created with filled
rectangles . . . . . . . . . . . . . . . .13
Figure 16: The Properties|Protection dialog box . . .14
Figure 17: Field names display when Display Field Name
is checked in the Properties|Field Type
dialog box . . . . . . . . . . . . . . . .15
Figure 18: Pressing Enter in the Child2 field without
entering a value skips to Next field after
the series . . . . . . . . . . . . . . . .16
Figure 19: Pressing Enter in the Child3 field without
entering a value skips to Next field after
the series . . . . . . . . . . . . . . . .16
Figure 20: The decision tree for Child2 . . . . . . .16
Figure 21: The decision tree for Child3 . . . . . . .16
Figure 22: The forms used to create an application
where one form launches another . . . . .17
Figure 23: The decision tree for the Launcher field .17
Figure 24: The three forms used to create this sample
application . . . . . . . . . . . . . . .18
Figure 25: The decision tree for the Clerical1
field . . . . . . . . . . . . . . . . . .18
Figure 26: The entire value in Too Long can't be stored
in the database . . . . . . . . . . . . .20


Figure 27: The value stored in an existing database is
limited by the table's field lengths . . .20
Figure 28: Fields F2 and Counter, and the decision tree
for Counter . . . . . . . . . . . . . . .20
Figure 29: Press Ctrl+Enter to start a new line in the
Conclusion dialog box . . . . . . . . . .21
Figure 30: After adding the NewCol1 field, split the
index for the link . . . . . . . . . . . .22
Figure 31: The new index value is written to the
database and read by Col1 (Key) . . . . .22
Figure 32: After you select a State value, the
abbreviation and full name appear . . . .24
Figure 33: The decision tree for Zip that's copied and
edited for City and State . . . . . . . .25
Figure 34: The pasted and edited decision tree for
City . . . . . . . . . . . . . . . . . . .25
Figure 35: The pasted and edited decision tree for
State . . . . . . . . . . . . . . . . . .25
Figure 36: Read Link is edited so it only reads the
ZipCodes table . . . . . . . . . . . . . .26
Figure 37: This link reads and writes to the same
database table, ZipCodes . . . . . . . . .26
Figure 38: Users can add new zip codes to the database
and selection list by selecting new Zip .27
Figure 39: Delimiter marks appear when a block of cells
is linked to a field . . . . . . . . . . .28
Figure 40: After you choose Connect, enter the name for
the Excel cell in this dialog box . . . .29
Figure 41: Choose Yes to load Excel in memory and
establish the DDE Link . . . . . . . . . .29
Figure 42: The List Separator is the character
ObjectVision uses to separate arguments .31
Figure 43: Previous and Next button names replaced with
arrow symbols . . . . . . . . . . . . . .32
Figure 44: The decision tree for the Age In Years
field . . . . . . . . . . . . . . . . . .33
Figure 45: The Time (@NOW) field is a Fixed field type
with the maximum fifteen decimal places .34
Figure 46: Remember to put a space between the double-
quote marks to separate the two strings .35
Figure 47: The first word typed into Capital Idea was
originally (with a lowercase o) . . . . .35
Figure 48: The PIF Editor window where you specify the
settings you want . . . . . . . . . . . .38
Figure 49: Note that the .PIF file, not the .EXE file,
is listed in the Command Line . . . . . .38
Figure 50: The Credit sample application and its Order
table in Paradox . . . . . . . . . . . . .39
Figure 51: The Application Shortcut Key option is at
the bottom of the Advanced Options
window . . . . . . . . . . . . . . . . . .39
Figure 52: The Save File Name As dialog box for graphic
objects . . . . . . . . . . . . . . . . .40
Figure 53: Examples of graphics sized proportionally
using a diagonal guideline . . . . . . . .41
Figure 54: The question mark in the Use field indicates
Help is available for the field . . . . .41


Figure 55: The condition for this tree isn't displayed
because the view is too small . . . . . .43
Figure 56: Choose View|Enlarge until the entire
decision tree displays . . . . . . . . . .43
Figure 57: When a null value is entered, Data Type
displays this message . . . . . . . . . .44
Figure 58: Any value other than a null value returns a
data type code . . . . . . . . . . . . . .44
Figure 59: Printer configuration and setup windows .45
Figure 60: These ruler fields are the basis for a
precise, printer-specific design
template . . . . . . . . . . . . . . . . .46
Figure 61: W4Form shown in Screen view (top) and
Printer view (bottom) . . . . . . . . . .46
Figure 62: The decision tree for the Enter button . .51
Figure 63: The finished Branch Button form . . . . .51
Figure 64: This is the master copy of the decision
tree . . . . . . . . . . . . . . . . . . .52
Figure 65: Only First name, Last name, Street address,
and City have the edited version of the
tree . . . . . . . . . . . . . . . . . . .52
Figure 66: Only the values in State and Zip code
display after pressing the Flexible Form
Clear button . . . . . . . . . . . . . . .52
Figure 67: The match characters for uppercase
letters . . . . . . . . . . . . . . . . .53
Figure 68: The decision tree for Date Type . . . . .53
Figure 69: The decision tree for Valid Date . . . . .54
Figure 70: The error message displayed by @MESSAGE .54
Figure 71: This is the decision tree for the Password
field . . . . . . . . . . . . . . . . . .54
Figure 72: This message appears if an incorrect
password is entered . . . . . . . . . . .55


 December 9, 2017  Add comments

Leave a Reply