Version 3.0, by Paul Piko.
Released October 2000
Copyright 1998-2000 Piko Computing Consultants
This product includes software developed by the University of California, Berkeley and its contributors.
Email contacts:
Technical: support@piko.com.au
Sales: sales@piko.com.au
This file contains a brief summary of the new features in VOPP3. Please refer to the help file for additional information.
Changes to existing utilities
Application as PRG/MEF
Dialog now has option to include/exclude the application name as part of the
filename
Editor Indent
Existing contents of clipboard are now retained after indenting
#IF/#ELSE/#ENDIF are now indented
Hotkey Ctrl-Alt-I to perform indent
Editor Print
Existing contents of clipboard are now retained after printing
Hotkey Ctrl-Alt-P to perform print
VO Export Explorer
Status bar appearance changed
Go to entity on right mouse click
Regular expression searches
Compare export files from command line, log results to file (see compaef.bat,
compall.bat)
View of window binary shows a "test mode" version of how the window
will appear at runtime
Setting the source view to use VO's font will also make the explorer font match
VO's.
New file open dialogs supported on Win2000
Hotkey Ctrl-Alt-E to start VOEE from inside VO
Entity separator lines displayed when viewing source code
Global Search & Replace
New Report option will display a window containing the results of the search.
The contents of this window can be printed or copied & pasted. It remains
open when the Global Search & Replace dialog is closed, allowing you to
refer to it when you return to the repository explorer.
Regular expression search and replaces
Custom exclusion list now supports wildcard (*,?) names (* must be at end)
System Builder
Hotkey Ctrl-Alt-B to call up System Builder while in VO
Can use wildcards (*,?) when specifying applications in a system (* must be at
end)
Can choose whether or not existing EXEs/DLLs are overwritten when generating
binaries
Can run a process for each EXE/DLL (e.g. compress binary) - configurable through
template file
If your app/dll has a define called VER_VOPP_FILEBUILD System Builder will
increment it on each compile. It should be defined as a digit within quotes,
e.g. DEFINE VER_VOPP_FILEBUILD := "1024". You can then use this to
help determine versions.
The "Touch before build" setting can be cleared automatically after
each build. This is set in VOPP Plus!
Whenever a DLL is generated a PRG containing prototype information will also be
created. See Export File to PRG below.
AutoExport
Waits for keyboard idle before exporting
Can be interrupted by pressing Escape
Optional countdown window allowing skipping/postponement of upcoming export
Optional tray icon notification of next export
Optional deletion of old exports after configurable number of days
Optional sound notification of upcoming export
Can run a process for each exported file (e.g. compress) - configurable through
template file
Optional second export directory
Can specify if exports should occur during debugging
Can specify if exports should occur while running application from the IDE
Can exclude applications from autoexport - wildcards (*,?) supported (* must be
at end)
Can exclude projects from autoexport - wildcards (*,?) supported (* must be at
end)
Hotkey Ctrl-Alt-A to call up AutoExport Configuration while in VO
Project Copy
Ctrl-Alt-R to invoke Project Copy from VO
Import Assistant
Ctrl-Alt-M to invoke Import Assistant from VO
New Utilities
Application Usage
Report showing all the apps/libraries/DLLs that contain a reference to the
current application in their properties
VOPP Tray Icon
Shows autoexport status
Menu to many VOPP options
Token Select
Position the cursor to the left of an opening token and press F6. Text will be
selected up to the matching token.
(Opening token: single/double quote, left parentheses, left brace {, left square
bracket [ )
VOPP Calculator
Extensible programmer's calculator for VO programmers
Ctrl-Alt-C to invoke calculator from VO
AutoType for the VO Source Editor
Automatic expansion of text in the VO source code editor.
User configurable through the VOPP AutoConstruct.txt file - changed to VOPP
AutoType.txt, and moved to \CAVO25\VOPP3
Ctrl-Alt-T to toggle
Trigger key, definition and header file locations, speed of insert configurable
through VOPP Plus!
VOPP Plus!
Change CA-VO settings
Change VOPP AutoType settings
Change setting for display of VOEE splash screen, background on calculator,
indent by spaces
Font for calculator Chr() results can be configured
Setting to clear System Builder's "Touch before build" after each
build
Set language assistant prefix
Set DBF Utility creation template
Language Assistant
A utility to help create multilingual applications.
Before using the Language Assistant you need to ensure that a few
prerequisites are met:
1. You need to create a string table that will contain your default language
strings. The string table must be called VOPP_Language, and you should
put it into a DLL.You string table should look like this:
RESOURCE VOPP_Language STRINGTABLE
BEGIN
END
2. For each additional language you want to support (up to 3 in addition to the
default) you need to set up a DLL, each containing a string table resource
called VOPP_Language, as above.
3. Each string will be given a constant string identifier, e.g. MSG_TITLE. These
constants will be shared between the language DLLs and your application. You
need to create a library to hold these constants. The library should contain a
define called VOPP_LANGUAGE_LASTID, in any module. As contants are allocated
they will be placed into the same module as VOPP_LANGUAGE_LASTID. The value of
the define specifies the highest constant value allocated so far. If you want
the constants to begin at 5001 your define should look like this:
DEFINE VOPP_LANGUAGE_LASTID := 5000
4. Put the string id library into the properties of your language DLLs and your
application.
Once these prerequisites are satisfied you can call up Language Assistant from
your application. If you highlight a string and press Ctrl-Alt-G the Language
Assistant dialog will appear. The fields should be filled as follows:
- Default Language, String: This is your text expressed in the default language.
Your highlighted string is put here.
- Default Language, DLL with string table: The name of the DLL containing your
default language string table.
- Additional Settings, String Identifier: This is the name of the constant that
will be used to refer to your text. By default it is made up of a prefix (set in
VOPP Plus) concatenated with your default string.
- Additional Settings, String Id Library in repo: This should be the name of the
library you created in step 3 above.
- Additional Settings, LoadResString Module: The function LoadResString has a
parameter that specifies what module will be queried for the translation string.
The module may be given as a file name string (e.g. "MYLANG.DLL", including
the quotes), or as a variable name that contains a handle.
There are three further sections on the dialog where you can enter the
appropriate translation of your text, along with the name of the DLL that it
should be placed in.
Single App Build
This will compile and generate the current application. If you are using the
VER_VOPP_FILEBUILD define ti will be incremented.
A template can be executed after the generation.
This is configured in VOPP Plus!
Ctrl-Alt-S shortcut
Application Statistics
Count of entities, lines of code, lines of comments in an application or a whole
project. Select "Application Statistics" from Tools menu to run.
DBF Utility
Choose a DBF and paste the following to clipboard/source editor:
- structure as comment block
- array of fields similar to that returned by DBStruct
- code to create DBF/production index
Ctrl-Alt-D hotkey (this can be reconfigured to run any program you want, e.g.
DBA, dbAssist, etc)
The code generated for DBF creation can be customised using a template. The
following replacement markers are available (see VOPP3\Template\CreateDBF.TPL
for an example):
- %Fields% will be replaced by FIELD statements for each field in the DBF
- %Structure% will be replaced by an array representing the DBF, formatted as
DBStruct()
- %BaseName% will be replaced by the DBF name, without path or file extenstion
- %Driver% will be replaced by the value of the Driver control on the dialog
- %EraseProductionIndex% will be replaced by code to delete a production index
for the DBF
- %CreateOrder% will be replaced by DBCreateOrder() calls for each order
Export File to PRG
Converts the source code contents of an export file into a single PRG file. This
can be useful in the following scenario: When you use VO to create a DLL a
library AEF of prototypes/defines/classes contained in the DLL is also created.
When you want to use the DLL in your code you need to import this library AEF
and include it in the properties of your application. Each time you change and
rebuild the DLL code you should ensure that the library is kept in sync - you
need to import the newly created library or manually update it with the
changes.
Export File to PRG helps minimise the effort in performing this update. When you create your DLL run Export File to PRG, giving the VO generated library AEF as a parameter - a PRG is generated. Then, in VO, create a library with a module that is associated with the PRG. Use this library, rather than the VO generated one in your applications. Each time you create your DLL, just rerun Export to PRG. This way you don't have to re-import or perform any manual code updates to the library. Compile the library and it is ready for use in your applications.
Export File to PRG is automatically executed by whenever VOPP's System
Builder creates a DLL.
Note: modules beginning with _! are not written to the PRG