Copyright: (C) 1992-3 Helios Software Solutions


Contents for Windev Help
Contents for Windev™ Help

Concepts

Introduction

Projects

Context Sensitive Help

Hypertext Jumps

How To...

Create a Project

Configure Windev

Configure for Dynamic Data Exchange

Find Text

Find and Replace Text

Search Files for Text

Extract Text Strings from Binary Files

Compare Text Files

Reference Information

Menu Commands

Tool Bar Commands

Keyboard and Mouse

Regular Expressions

Program Initialisation

Legal Requirements

Copyrights and Trademarks

License and Registration


Copyrights and Trademarks

Windev Help Release 1.56.

Windev - Copyright © 1992-3 Helios Software Solutions.  All rights reserved.

Windev is a trademark of Helios Software Solutions.

Microsoft and MS-DOS are registered trademarks and Windows, Windows NT, Visual C++, and Win32 are trademarks of Microsoft Corporation.

Symantec and Zortech are trademarks of Symantec Corporation.

UNIX is a trademark of AT&T Bell Laboratories.

Macintosh is a registered trademark of Apple Computer Inc.

CompuServe is a registered trademark of CompuServe Incorporated.


What is Windev?
Introduction

Windev™ - Windows Developer is an integrated program development environment for Microsoft® Windows™, which can also be used purely as a powerful text file editor.  It has features to support programmers through the edit, compile, link and test cycle, such as:

~ Multiple edit windows using the Windows multiple document interface (MDI).

~ In addition to the usual cut, copy and paste capabilities, selected text can be case shifted and block indented, and characters and lines can be transposed.  Cut and copied text can be appended to the clipboard, as well as replacing its contents.

~ Text can be automatically aligned and indented relative to the previous line to aid block indentation.  The indentation level can be changed with a single keystroke.

~ A powerful search/replace engine using UNIX-style regular expressions.

~ A tool bar for fast access to frequently used commands.

~ User configurable key bindings to match command accelerators to other editors.

~ Support for UNIX™ and Macintosh™ text file formats.

~ Built in file manager for fast file copying, renaming, deleting etc.

~ MAPI compliant electronic mail interface.

~ Tools to compare files, search all files for a text pattern, and display system metrics.

~ Browsers for binary files, and very large text files.

~ Configurable multi-vendor compiler support.

~ Per project configuration settings.

~ Commands to build, compile, link, test and debug your project.

~ Hypertext links from compiler error messages to the relevant source line.

~ Context sensitive help on programming language key words and Windows SDK.

~ Native implementations are available for Windows 3.1™ and Windows NT™


Projects

To Windev, a project is simply a working directory in which it maintains information in an initialisation file.  The directory should contain a logically related set of files that are used to create an application or dynamic link library.  Windev has default environments for Microsoft and Zortech C and C++ compilers, linkers, make programs etc, and these can be changed using the Configure Project command on the Project menu.  Any other compiler must be configured from scratch using the "Other" environment selected from the drop-down listbox.

Working with Projects

To select a project to work on, use the Project menu's Select Project command.  This allows you to select an existing project, or enter the path of a new one.  When you switch to an existing project, the environment that you established when you last worked there is reinstated, and the files that you were working on are loaded into edit windows.

A project is built using the Build command from the Project menu.  This executes the configured make program (eg. nmake.exe) on the configured makefile.  Note that Windev does not create this for you.

Edit Only Mode

If you want to use Windev as a text editor only, you can disable the project features from the Global Settings dialog, or by starting Windev with the argument -e.  This disables the Project menu, and hides the corresponding buttons on the tool bar.


Create project
How to Create a Project

1)  Choose the Select Project command from the Project menu.

2)  On the Select Project dialog,  fill in the full path to the directory in which you will be working on your project, and press the Change To button.  If the directory does not exist, you will be asked if it is OK to create it.

3)  Windev will change its working directory to your project directory, and create a configuration file called windev.ini.

4)  You may now make any project specific changes, such as enabling automatic block indentation, by selecting the Global Settings command from the Settings menu.

5)  Display the Project Settings dialog by selecting the Configure Project command on the Project menu.  If you are not using Microsoft's C compiler, or the default settings are not appropriate, make the appropriate changes.  You will probably at least want to fill in the name of your target executable.

6)  If your compiler is not in the Environment drop down listbox, select "Other" and then configure each of the settings.  Use the predefined compiler, linker and builder (make program) settings as an example, and see the online help on project variables for a description of each setting.

7)  Create a makefile suitable for your project, either from scratch or by copying an existing one and editing it.

8)  You are now ready to start creating the source files for your project.


Configuring Windev

The configuration of Windev is divided into the categories below.  Click on the one you require help on.

Global Settings control the editor & visual appearance of Windev.

Project Settings control the compiler environment and default file extensions.

Page Settings control the layout of the printed page.

Key Bindings defines the keyboard accelerators for menu commands.

Tools menu customisation.

File Filters for the file open dialog.


Using Dynamic Data Exchange
Configuring for Dynamic Data Exchange
See Also: Using Visual C++

Adding Windev to Windows' Registration Database

Windev can be configured to open or print files with selected extensions from File Manager, or Program Manager.  To enable this feature, you will need to add the following entries to your Windows registration database:

REGEDIT

HKEY_CLASSES_ROOT\.cpp = Windev

HKEY_CLASSES_ROOT\.c = Windev

HKEY_CLASSES_ROOT\.h = Windev

HKEY_CLASSES_ROOT\.def = Windev

HKEY_CLASSES_ROOT\.rc = Windev

HKEY_CLASSES_ROOT\.dlg = Windev

HKEY_CLASSES_ROOT\Windev = Windows Developer

HKEY_CLASSES_ROOT\Windev\shell\print\command = c:\windev\OS\windev.exe -p %1

HKEY_CLASSES_ROOT\Windev\shell\open\ddeexec = [open("%1")]

HKEY_CLASSES_ROOT\Windev\shell\open\ddeexec\application = Windev

HKEY_CLASSES_ROOT\Windev\shell\open\ddeexec\topic = System

HKEY_CLASSES_ROOT\Windev\shell\open\command = c:\windev\OS\windev.exe -s

Use Winhelp's Edit/Copy command to copy the above lines to the clipboard, and then paste them into a new file in Windev.  If Winhelp has split any lines to fit them to its window, join them back together so that all lines except the first start with HKEY_CLASSES_ROOT.  On the two lines with "command =", replace "OS" with "win3" for Windows 3.1, or "NT" for Windows NT, and make sure the rest of the path to windev.exe is correct.  Save the file as SHELL.REG.

Start Regedit.exe and use its File/Merge Registration File command to merge SHELL.REG, followed by its File/Save Changes command.

Now, when you double click on a file with say a .CPP extension in File Manager, it starts Windev if it's not already running, and instructs it to open the file.  Printing can be achieved by selecting the file in File Manager, and then choosing its File/Print command.  Note that this will start a new instance of Windev, which will automatically terminate when it has finished printing.

Using Windev as a DDE Server

Windev's DDE open command also recognises the following syntax:

[open("<filename>(<line>,<col>)")]

[open("<filename>(<line>)")]

where:

<filename>	specifies the name of a file to open

<line>	specifies the line to place the caret on (starting from 1)

<col>	specifies the caret column position (starting from 1)

For example, the command:

[open("C:\CONFIG.SYS(15,6)")]

would cause Windev to open an edit window on config.sys at line 15, column 6.


Using Windev with Visual C++
Using Windev with MS Visual C++

If you want the features of Windev from MS Visual Workbench (or another Windows application), but don't like having it start a new instance for each file you edit, Windevx provides the solution.  It translates the command line you specify in Visual Workbench's Tools menu into the corresponding Windev DDE command, so Windev can act as a DDE server to MSVC.  Here's how to do it:

1) Check WINDEVX.EXE is installed in the same directory as WINDEV.EXE.

2) If you haven't already added Windev to Windows' Registry, see the instructions in Configuring for Dynamic Data Exchange.

3) Start MSVC and use its Options/Tools menu command to add:

Command Line:	<drive:>\<path>\WINDEVX.EXE

Menu Text:	Winde&v

Arguments:	$File($Line,$Col)

Where <drive:>\<path> should be the full path to the directory you used in step (1) above.

Now, when you choose "Windev" from MSVC's Tools menu, Windev will open an edit window at the same line and column as the file in MSVC's active window.  You don't need to make sure that Windev is already running - Windevx will start it the first time it's needed.


Context Sensitive Help

Windev can be set up to link to on-line help systems for your programming language environment and for Windows SDK.  By default, the Windows Help format files are used, except that Microsoft QuickHelp™ is used for C/C++ on Windows 3.1.  You can establish which help files are used when you configure your project.

You get context sensitive help by setting the edit insertion point in a programming language keyword or function call and pressing the F1 key in conjunction with Ctrl and Shift as follows:

Type	To Get
F1	In project mode: Help on a C/C++ language key word, if appropriate; or on an included file* if appropriate; otherwise on Windows SDK. In edit-only mode: Help on keyboard and mouse.
Ctrl+F1	Help on a programming language key word or run-time library call.
Shift+F1	Help on Windows SDK.

* If the caret is on a line starting "#include ..." or  "!include ..." in an edit window, pressing F1 will open a read-only edit window on the included file.  Use the Configure Project command to set Include to any extra search paths not specified by the INCLUDE environment variable.


Hypertext Jumps

The output of a global search command, or a project command, such as Build or Compile, is displayed in a log window in the form:

filename(line-number[,column])  rest-of-line...

Pressing the right mouse button on such a line, or moving the caret to it and pressing Ctrl+G, will open an edit window on the specified file, with the caret at the start of the specified line.


Changing Page Setup
Changing the Page Setup

To change the printed page setup, choose the Global Settings command from the Settings menu, and then select the Page Setup option.

Any changes made will be discarded if the Page Setup dialog is cancelled, or if the Global Settings dialog is cancelled.

Headers and Footers

The following table explains the codes that you can type in the Header and Footer boxes:

Type	For
&d	The current date in short form.
&D	The current date in long form.
&t	The current time.
&f	The filename, excluding its path.
&F	The full filename, including its path.
&p	The page number.
&l	Text that follows the code is to be aligned at the left margin.
&c	Text that follows the code is to be centred (this is the default).
&r	Text that follows the code is to be aligned at the right margin.
Any other text is copied to the page header or footer literally.

Margins

The margins that you specify represent the widths of the borders from the edges of the paper.  Note that some printers require a minimum border width.  If the margins that you specify are less than this, they will be adjusted automatically at the time of printing.


Extracting Text from Binary Files

To list ANSI text strings in binary files, choose Extract Strings from the Tools menu.  By default, strings of four or more consecutive printable characters are listed, but you can specify your own filter using a regular expression.  Note that UNICODE strings are not supported.

Clicking the right mouse button on any string will open a window on the corresponding file at that point, displaying its contents in hexadecimal.


Comparing Files
Comparing Text Files

To compare two text files, choose Compare Files from the Tools menu.  Fill the file name fields in on the dialog, and press OK.  The output is to a log window using the following conventions:

<	Precedes each different line from the first file.

>	Precedes each different line from the second file.

a	Means that the following lines were added.

d	Means that the following lines were deleted.

c	Means that the following lines were changed.

---	Separates changed lines in the first file from the second.


Window Selector Listbox

This listbox displays the list of windows.  It can be used as an alternative to the list on the Window menu to select the active window.

Use the left mouse button, or the up and down arrows on the keyboard to select a window.  Double clicking, or pressing Enter will give the input focus to the selected window.  You may close the selected window by pressing the Delete key.

The listbox window stays on top of your other windows, and may be moved and resized as necessary.


File Filters Customization

File filters are a means of using wild cards to list only files with matching names in the File Open/Save As dialogs.  You can predefine up to 10 filters for commonly used wild cards.  Note that you can have different sets of filters for each project, and for when you are working in non-project mode.  In project mode, the default set of filters depends on which environment you select.

You can configure the filters on the File Open dialog by using the Settings/Global command, and clicking on the Filters button of the Global Settings dialog.  This will bring up the following dialog.  Click on any field for further information.


Filters

This listbox displays the descriptions of the current file filters.  The currently selected entry can be edited in the Description and Wild Cards edit controls.  You can also change the order of the entries in this list using the Move Up/Down buttons to move the selected entry.


Description

You can edit the descriptive text for the filter highlighted in the Filters list here.  The text can say anything you like, but it's best not to make it longer than the visible space in this edit control.  Click on New before typing a new description.


Wild Cards

You can edit the wild cards corresponding to the selected filter here.  Any valid DOS wild card patterns (with "*" and "?") can be used here.  Multiple patterns must be separated by semi-colons.  For example "*.TXT;*.INI".


New

Click on this button to create a new filter.  You will then have to type the description and wild cards in the corresponding edit controls.


Delete

Click on this button to delete the selected filter.


Move Up

Click on this button to move the selected filter up one place in the list.


Move Down

Click on this button to move the selected filter down one place in the list.


OK

Click on this button to save any changes you have made.  You will also have to click the Apply button on the Global Settings dialog.


Cancel

Click on this button to cancel any changes you have made.  If you clicked on OK by mistake, you can still click on the Cancel button on the Global Settings dialog to cancel any changes.


Windev Initialisation
Windev Initialisation Overview

The initialisation of Windev can be controlled by run time arguments, and by settings in initialisation files.  Click on the topic you require more information on:

Run Time Arguments

Initialisation Files

Project Variables


See Also: Run Time Arguments
See Also

Initialisation Files

Project Variables


See Also: Initialisation Files
See Also

Run Time Arguments

Project Variables


See Also: Project Variables
See Also

Run Time Arguments

Initialisation Files


Run Time Arguments
See Also

The run time arguments listed below can be used to override initialisation file settings.  They are not case sensitive, but must appear before any file names.  Because some of the arguments are mutually exclusive, conflicts are resolved by using the last option specified.  Any other arguments are silently ignored.  The switch character can be '/' or '-' as shown:

Argument	Description
-av	Arrange windows vertically tiled
-ah	Arrange windows horizontally tiled
-ac	Arrange windows cascaded
-am	Arrange windows maximized
-e	Editor only (project menu selection disabled)
-p	Print files in argument list, then exit.
-s	Shell for DDE.  Add this option to the DDE Exec command to start up without reloading project files.
-d <project dir>	Initial project directory
-i <ini file>	Specifies the initialisation file.
These arguments can be followed by zero or more names of files to edit (or print if the -p option was specified).  If a filename to be edited (not printed) is followed by "(<line>[,<col>])", with no intervening spaces, the file will be opened with the cursor at that position.  If <line> is a hex number (eg. 0x1a22), a hex view of the file will be created, with the cursor at that address.

eg.  windev -ac -s -e main.cpp(51,20) init.cpp(125)

In this example Windev will start up in edit-only mode, without reloading the project files it was last accessing, and open cascaded windows on main.cpp at line 51, column 20 and init.cpp at line 125, column 1.

The "<filename>(<line>[,<col>])" syntax can also be used with the DDE open command.

Initialisation Algorithm

Set all hard coded defaults.

Parse the runtime arguments.

If -i <ini-file> was specified and its path exists

Set IniFile = <ini-file>

else {

If windev.ini exists in working directory

Set IniFile = <working-dir>\windev.ini

else

Set IniFile = <install-dir>\windev.ini	// ie. in installation directory

}

Use IniFile entries to change hard coded defaults.

If -d <project-dir> was specified or IniFile contains a Project = <directory> entry {

Use entries in windev.ini in the project directory

to override any existing settings.

}

Finally, override any settings with values supplied as runtime arguments.

Termination Algorithm

If there is a current project directory {

If windev.ini does not exist there, create it

Write current settings to that windev.ini

Write a Project = <directory> entry to IniFile

}

else {

Write current settings to IniFile

Delete any Project= entry

}


Initialisation Files
See Also

The default initialisation file is windev.ini in the installation directory.  If windev.ini exists in the working directory, that will be used instead.  It contains default settings for the items listed below.  Omitted entries  will take their settings from the program's internal resources.  If there  is an entry for Project= in the [Project] section, any settings in windev.ini in the project directory will take precedence.

NB. Use the Global Settings and Configure Project dialogs to change these settings - it's much safer!  The case of the key words is significant.

[Settings]

SaveSettings=	0=No | 1=Yes
SaveWindows=	0=No | 1=Yes
Window=	Initial window position (left,top,right,bottom,zoom)
Selector=	Window selector position (left,top,right,bottom)
Arrange=	0=Vertical Tile | 1=Cascade | 2=Maximize | 3=Horizontal tile
ScreenFont=	name,height,weight,italic  (height is in device units)
PrinterFont=	name,height,weight,italic  (height is font point size)
PageMargins=	left,top,right,bottom
PageHeader=	format string
PageFooter=	format string
TabSize=	Tab size in spaces
ShiftWidth=	Indentation increment in spaces
FileFilter=	Entries for the "List files of type" listbox in the file open and save as dialogs.  The default is: Text Files (*.txt,*.ini)|*.txt;*.ini|Source (*.c,*.cpp,*.h)| *.c;*.cpp;*.h|All Files (*.*)|*.*|
Flags=	Binary combination of the following:
	0000000000001 = No status bar
	0000000000010 = No clock
	0000000000100 = No tools
	0000000001000 = No horizontal scroll bar
	0000000010000 = No vertical scroll bar
	0000000100000 = Auto-save
	0000001000000 = Save .BAK files
	0000010000000 = Use space as word delimiter
	0000100000000 = Flash window on alert
	0001000000000 = Editor only (no project menu)
	0010000000000 = Maintain indentation
	0100000000000 = Block indent after brackets
	1000000000000 = Report when files get modified
[Tools]

ToolCount=	Number of tools defined (10 maximum)
ToolCommand0-9=	Command line to start tool 0-9
ToolMenuText0-9=	Corresponding text on the Tools menu
ToolArguments0-9=	Run-time arguments for tool 0-9
ToolInitDir0-9=	Startup directory for tool 0-9
ToolFlags0-9=	Minimize/prompt for arguments for tool 0-9

[Session]

EditCount=	Number of active edits
Edit01-99=	Active edits in last session
File1-6=	Most recently used files

[Key Bindings]

Edit:Transpose=	84,9
Set:Global=	89,9
File:Exit=	88,17
etc.


Project Variables
See Also

Project variables are saved under the [Project] and various [<environment>] sections in your initialisation files.  The variables and their values are as follows:

[Project]

Project=	Initial project directory
Project1-6=	Most recently used project directories
Environment=	Microsoft C | Microsoft C++ | Zortech C | Zortech C++ | Other
DebugBuild=	0=no | 1=yes
Target=	Target executable file name
TestArgs=	Arguments to supply to the Target when testing it.
The Environment Section

There are separate environment sections for:

[Microsoft C], [Microsoft C++], [Zortech C], [Zortech C++] and [Other]

When you select one of these from the Project Settings dialog, an initial set of default values is assigned for the following settings.  Even if you only use Windev as an editor, you will probably want to change the FileFilter= setting.

Compiler=	Compiler executable + essential arguments
CompileArgs=	Compiler arguments common to debug and release compilations.
CompileRelease=	Additional arguments to compiler for release only.
CompileDebug=	Additional arguments to compiler for debugging only.
Linker=	Linker executable + essential arguments
LinkArgs=	Common linker arguments
LinkRelease=	Additional arguments to linker for release
LinkDebug=	Additional arguments to linker for debugging
LinkObjects=	Object files to link
LinkListFile=	Linker map output file
LinkLibs=	Common libraries to link
LinkLibsRelease=	Additional libraries to link for release
LinkLibsDebug=	Additional libraries to link for debugging
LinkDefsFile=	Linker definitions file
Builder=	Make executable + essential arguments
BuildArgs=	Common builder arguments
BuildRelease=	Additional arguments to builder for release
BuildDebug=	Additional arguments to builder for debugging
RC=	Resource compiler executable
RCArgs=	Common RC arguments
RCRelease=	Additional arguments to compile resource for release
RCDebug=	Additional arguments to compile resource for debugging
Debugger=	Debugger executable + debugger arguments
FileFilter=	Entries for the "List files of type" listbox in the file open and save as dialogs.  The C default is: Source (*.c,*.h)|*.c;*.h|Resources (*.def,*.dlg,*.rc)|*.def;*.dlg;*.rc|All Files (*.*)|*.*|
GrepFiles=	Default fileset for the Global Search dialog (eg. "*.cpp *.h")
Include=	Include file search paths in addition to those specified in the INCLUDE environment variable.
HelpSDK=	DOS command line to run SDK help executable, or $windows SDK help file name.
HelpEnv=	DOS command line to run program language help executable, or $windows help file name.


Changing Key Bindings

To change the default keyboard accelerators for menu commands, choose the Global Settings command from the Settings menu, and then select the Key Bindings button.

Any changes made will be discarded if the Key Bindings dialog is cancelled, or if the Global Settings dialog is cancelled.

If you exit from any project (using the Project Select command) before making any changes, the new key bindings will work in all projects (unless locally overridden), otherwise just the project you are working on.

Click on any field for more information.


Command

This listbox lists all the commands that you can define keyboard accelerators for.  When you click on an entry, it shows the current setting, and allows you to redefine it.


Virtual Key

This combobox shows the virtual key name corresponding to the selected command.  The drop down list shows the valid keys that can be used as accelerators for commands.


Control

Check here if you want the selected accelerator key to work in conjunction with the Control key.


Shift

Check here if you want the selected accelerator key to work in conjunction with the Shift key.


Alt

Check here if you want the selected accelerator key to work in conjunction with the Alt key.  You must be careful not to choose any combinations that conflict with Windows use of this key.


Set

Press this button to set the accelerator for the selected command.  All changes will actually be made when you press the OK button, and the Accept button on the Global Settings dialog.


OK

Press this button when you are ready to save the changes you have made.  You are still required to press the Accept button on the Global Settings dialog to actually make the changes.


Cancel

If you press this button, all changes that you have made will be discarded, and the dialog will close.


Keyboard and Mouse

As far as possible, the use of the keyboard and mouse is CUA compliant and adheres to the standards specified in "The Windows Interface: An Application Design Guide", by Microsoft.

Keyboard

Cursor Movement Keys

Editing Keys

Text Selection Keys

Function Keys

Menu Accelerator Keys

Mouse

Cursor Positioning with the Mouse

Editing with the Mouse

Text Selection with the Mouse

Hypertext Jumps


Cursor Movement Keys
See Also

Press	To move the insertion point
Up Arrow	Up one line.
Down Arrow	Down one line.
Right Arrow	Right one line.
Left Arrow	Left one line.
Ctrl+Right Arrow	Right one word.
Ctrl+Left Arrow	Left one word.
Home	To the beginning of the line and the first word on the line alternately.
End	To the end of the line.
Page Up	Up one screen.
Page Down	Down one screen.
Ctrl+Home	To the beginning of the file.
Ctrl+End	To the end of the file.
Ctrl+A	Backward to the end of the previous word.
Ctrl+B	Backward to the start of the previous word.
Ctrl+E	Forward to the end of the next word.
Ctrl+F	Forward to the start of the next word.


See Also: movement keys
See Also

Editing Keys

Text Selection Keys

Function Keys

Menu Accelerator Keys


Editing Keys
See Also

Press	To
Backspace	Delete the character to the left of the insertion point, or delete selected text.
Delete	Delete the character to the right of the insertion point, or delete selected text.
Insert	Toggle between insert and overtype mode.
Ctrl+Tab	Shift all selected lines right.
Shift+Tab	Shift all selected lines left.
Ctrl+C	Copy selected text to the clipboard.
Ctrl+Shift+C	Copy selected text and append it to the current contents of the clipboard.
Ctrl+J	Joins selected lines together.
Ctrl+K	Toggle the case of selection, or character to right of insertion point.
Ctrl+L	Convert selection, or character to right of insertion point to lower case.
Ctrl+T	Transpose characters or lines either side of the insertion point.
Ctrl+U	Convert selection, or character to right of insertion point to upper case.
Ctrl+Shift+U	Make the first character of the selection upper case, and the rest lower case.
Ctrl+V	Paste text from the clipboard into the active window.
Ctrl+X	Delete selected text and put it on the clipboard.
Ctrl+Shift+X	Delete selected text and append it to the current contents of the clipboard.
Ctrl+Z	Undo the last editing action.


See Also: edit keys
See Also

Cursor Movement Keys

Text Selection Keys

Function Keys

Menu Accelerator Keys


Text Selection Keys
See Also

Press	To select or cancel selection of
Shift+Left Arrow	One character to the left.
Shift+Right Arrow	One character to the right
Shift+Up Arrow	One line of text up.
Shift+Down Arrow	One line of text down.
Shift+Page Up	All text one screen up
Shift+Page Down	All text one screen down.
Shift+Home	Text to the beginning of the line.
Shift+End	Text to the end of the line.
Ctrl+Shift+Left Arrow	The previous word.
Ctrl+Shift+Right Arrow	The next word.
Ctrl+Shift+Home	Text to the beginning of the file.
Ctrl+Shift+End	Text to the end of the file.
Ctrl+Shift+A	Selects backwards from the caret to the end of the previous word.
Ctrl+Shift+B	Selects backwards from the caret to the start of the previous word.
Ctrl+Shift+E	Selects forward from the caret to the end of the next word.
Ctrl+Shift+F	Selects forward from the caret to the start of the next word.
F9	Selects matching brace.
Shift+F9	Selects text up to matching brace.


See Also: selection keys
See Also

Cursor Movement Keys

Editing Keys

Function Keys

Menu Accelerator Keys


Function Keys
See Also

Key	Modifier	Action
F1		Help on window context
	Ctrl	Help on a programming language key word or run-time library call.
	Shift	Help on Windows SDK.
	Ctrl+Shift	Displays size of the file in the active window on the status bar.
F2		Builds the default target.
	Ctrl	Builds a specified target.
F3		Unused.
F4		Displays the File Manage dialog.
	Ctrl	Closes the active window.
	Alt	Terminates Windev.
F5		Displays the Find dialog.
	Ctrl	Finds the next occurrence of the search string.
	Shift	Finds the previous occurrence of the search string.
F6	Ctrl	Activates the next child window.
F7		Unused.
F8		Displays the Replace dialog.
	Ctrl	Replaces the next occurrence of the search string.
F9		Selects matching brace.
F9	Shift	Selects text up to matching brace.
F10		Toggles activation of the menu bar.
F11		Displays the Window Selector listbox.
F12		Displays the file Save As dialog.
	Shift	Prints the contents of the active window.


See Also: function keys
See Also

Cursor Movement Keys

Editing Keys

Text Selection Keys

Menu Accelerator Keys


Menu Accelerator Keys
See Also

Menu	Command	Keyboard Accelerator
File	New	Ctrl+N
	Open	Ctrl+O
	Save	Ctrl+S
	Save As	F12
	Save All	Ctrl+Shift+S
	Manage	F4
	Print	Shift+F12
	Exit	Alt+F4
Edit	Undo	Ctrl+Z
	Cut	Ctrl+X
	Copy	Ctrl+C
	Paste	Ctrl+V
	Cut Append	Ctrl+Shift+X
	Copy Append	Ctrl+Shift+C
	Toggle Case	Ctrl+K
	Capitalize	Ctrl+Shift+U
	Upper Case	Ctrl+U
	Lower Case	Ctrl+L
	Transpose	Ctrl+T
	Join Lines	Ctrl+J
	Shift Left	Shift+Tab
	Shift Right	Ctrl+Tab
Search	Find	F5
	Find Next	Ctrl+F5
	Find Previous	Shift+F5
	Replace	F8
	Replace Next	Ctrl+F8
	Goto Line	Ctrl+G
	Match Brace	F9
	Global Search	Ctrl+Shift+F5
Project	Build	F2
	Build Target	Ctrl+F2
Window	Use Selector	F11
Help	Window Context	F1
	SDK	Shift+F1
	Environment	Ctrl+F1
	File Statistics	Ctrl+Shift+F1


See Also: menu keys
See Also

Cursor Movement Keys

Editing Keys

Text Selection Keys

Function Keys


Mouse Cursor Positioning
Cursor Positioning with the Mouse
See Also

To set the insertion position with the mouse, click the left mouse button when the mouse cursor is at the required character position.  You can set it to the start of a line by clicking in the left margin next to the line.


See Also; mouse positioning
See Also

Editing with the Mouse

Text Selection with the Mouse

Hypertext Jumps


Mouse Text Selection
Text Selection with the Mouse
See Also

To	Do this with the left mouse button
Select any text	Click on the first character and drag to the last.
Select a single word*	Double click on the word.
Select an entire line	Double click in the left margin next to the line.
Select the entire file	Press Ctrl and click in the left margin.
Extend the current selection	Press Shift and click or drag to the new last character position.

*Double Clicking on a word with the left mouse button selects either a C/C++ language token, or all characters either side of the caret, up to a space or the beginning or end of the line, depending on the space delimiter setting in Global Settings.


See Also; mouse selection
See Also

Cursor Positioning with the Mouse

Editing with the Mouse

Hypertext Jumps


License and Registration

Association of Shareware Professionals

Definition of Shareware

Distributor License Agreement

Registration

Registration Address

User License Agreement


Helios Software Solutions

Mail Address:

Carr Brook House
Chorley Old Road
Brindle
CHORLEY  PR6 7QZ
England

Tel/Fax: (+44) 0772-324353

CompuServe Address:

Keith MacDonald
CompuServe ID: 100041,235


User License Agreement

LIMITED WARRANTY AND REMEDIES

THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT WILL THE AUTHOR BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF THE USE OF THE PROGRAM, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

YOU ACKNOWLEDGE THAT YOU HAVE READ THIS LICENSE, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AS THE COMPLETE AND EXCLUSIVE STATEMENT OF THE AGREEMENT BETWEEN US, SUPERSEDING ANY PROPOSAL OR PRIOR AGREEMENT, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN US RELATING TO THE SUBJECT MATTER OF THIS LICENSE.

Windev is a shareware Program and is provided at no charge to the user for evaluation.  Feel free to share it with your friends, but please do not give it away altered or as part of another system.  The essence of shareware software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products.

If you find this program useful and find that you are using Windev and continue to use it after a reasonable trial period, you must make a registration payment (see the registration instructions for details).  This registration fee will license one copy for use on any one computer at any one time.  All users will receive a copy of the latest release of Windev when they register, and free technical support for a limited period.

Commercial users of Windev must register and pay for their copies of Windev within 30 days of first use or their license is withdrawn.  Site License arrangements may be made by contacting Helios Software Solutions.

Anyone distributing Windev for any kind of remuneration must first contact Helios Software Solutions for authorization.

You must treat this software just like a book.  For example, this software may be used by any number of people and may be freely moved from one computer location to another, as long as there is no possibility of it being used at more than one location at a time.  Just as a book cannot be read by two people at the same time.

You are encouraged to pass a copy of Windev along to your friends for evaluation, but you must include all files in the original distribution.  Please encourage them to register their copy if they find that they make use of it.


Definition of Shareware

Shareware distribution gives users a chance to try software before buying it.  If you try a shareware program and continue using it, you are expected to register.  Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period.  With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below.  Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality.  (In both cases, there are good programs and bad ones!)  The main difference is in the method of distribution.  The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group.  For example, some authors require written permission before a commercial disk vendor may copy their shareware.

Shareware is a distribution method, not a type of software.  You should find software that suits your needs and pocketbook, whether it's commercial or shareware.  The shareware system makes fitting your needs easier, because you can try before you buy.  And because the overhead is low, prices are low also.  Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it.


Registration

Registration Benefits:

Windev makes use of the most advanced software technology available today.  As the technology improves, so does our software.  Your registration fee enables us to keep Windev at the forefront of technology, so that you continue to benefit from the productivity gains it gives you.

As a registered user, you will receive:

o  A copy of the latest release of the software on 3.5" diskette.

o  A license to use all future maintenance releases for both Windows 3.1 & NT.

o  The display of your name, company and registration number on Windev's About dialog.

o  Technical support via CompuServe E-mail, by FAX, or through the mail, at no charge for 101 days.

o  When a major feature enhancement release is made, you will receive details of how to obtain an upgrade at a substantial saving.

o  The source of some useful C++ classes.

Registration Instructions:

The registration fee can be paid direct to Helios Software Solutions in UK Pounds, or to PsL using a credit card, or it can be debited from your CompuServe account using the shareware registration service.

Direct Orders:

As of 26 September 1993, the Registration Fee for Windev is £21 UK Pounds, plus a shipping and handling fee (see the Registration Form).

Payment must be by UK pound denominated drafts drawn on a UK bank, or by EuroCheque, or by Pound Sterling International Money Order.  Sorry, but banking fees for payments in other denominations are prohibitively expensive.

Please enclose a cheque or money order with your registration form, payable to:

"Helios Software Solutions".

CompuServe Shareware Registration Service

If you have a CompuServe account you can have the registration fee debited from your account.  Simply go to service SWREG and follow the online instructions.  The registration ID numbers are 775 for the Windows 3.1 edition, 794 for the NT on Intel edition, and 1353 for the NT on Alpha AXP edition.

The registration fee for orders made using this service is $32 plus $5.90 shipping and handling.  This includes licenses for both Windows 3.1 and NT editions, and a disk with either the Alpha AXP edition, or both Intel editions.

PsL Registration Service:

Users outside of Europe may find it more convenient to order from Public (software) Library with your MC, Visa, AmEx or Discover card by calling 800-242-4PsL (from outside of North America: 713-524-6394), or by FAX to 713-524-6398, or by CompuServe to 71355,470.  THESE NUMBERS ARE FOR ORDERING ONLY.  Any other queries must be addressed to Helios Software Solutions.

The registration fee for orders through PsL is $32 plus $5.90 shipping and handling  This includes licenses for both Windows 3.1 and NT editions.


Registration Form
Windev Registration Form

Please register me as a licensed Windev user, and send me a copy of the latest release for:

[ ] Intel 80X86 PC's   [ ] Alpha AXP

Name:___________________________________________

Company:________________________________________

Address:________________________________________

________________________________________________

________________________________________________

Phone:_______________________

Fax:_________________________

CompuServe ID:_______________

Payment Due:

Registration Fee:	£21.00

Add £2.00 for both Intel & Alpha:	£_____

Shipping & Handling*:	£_____

Total paid:	£_____

(*UK: £1.00, Worldwide: £4.00)

Cheque/Draft No._____________

Signed:______________________

Date:________________________

The following section is optional, but will help us form our development plans, so please take the time to fill it in.

Usage:
[ ] Editor Only	[ ] Program Development
PC Operating Systems Used:	Programming Language/Vendor:
[ ] Windows 3.1	[ ] Microsoft_______________
[ ] Windows NT	[ ] Zortech_________________
[ ] Mac OS	[ ] Borland_________________
[ ] UNIX_________________	[ ] Other___________________
Original copy of Windev from:
[ ] CompuServe	[ ] Other BBS_______________
[ ] Distributor__________	[ ] Other___________________

Any Comments:____________________________________________

_________________________________________________________

When you have filled in the above details, mail this to Helios Software Solutions.

Thank you for your interest in this product.


Association of Shareware Professionals

We are pleased to announce that Helios Software Solutions is an approved vendor and associate member of the Association of Shareware Professionals (ASP).

The primary goals of the ASP include:

o  To inform users about shareware programs and about shareware as a method of distributing and marketing software.

o  To foster a high degree of professionalism among shareware authors by setting programming, marketing, and support standards for ASP members to follow.

o  To encourage broader distribution of shareware through user groups and disk dealers who agree to identify and explain the nature of shareware.

o  To assist members in marketing their software.

o  To provide a forum through which ASP members may communicate, share ideas, and learn from each other.

The Association of Shareware Professionals have drafted a code of ethics for all present and future members.  This code of ethics includes the following requirements:

o  A member's program (evaluation version) must not be limited (crippled) in any way.  In the true spirit of Try-Before-You-Buy, users must be able to evaluate all the features in a program before paying the registration fee.

o  Members must respond to every registration.  At the very least they must send a receipt for the payment.

o  Members must provide technical support for their products for at least 90 days from the date of registration.

The ASP has put in place a system to help ensure that users are treated fairly and professionally.  If a user is unable to resolve a problem with a member author then the user can contact the ASP Ombudsman with their complaint.  The Ombudsman will then try to help resolve the dispute.

ASP Ombudsman Statement:

Helios Software Solutions is a member of the Association of Shareware Professionals (ASP).  ASP wants to make sure that the shareware principle works for you.  If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help.  The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products.

Please write to the ASP Ombudsman at:

ASP Ombudsman
545 Grover Road
Muskegon, MI  49442-9427
U.S.A.

or send a CompuServe message via CompuServe MAIL to ASP Ombudsman 70007,3536.


Distribution License Agreement
Windev Distribution Licensing Agreement

Anyone wishing to charge people a fee for giving them a copy of Windev must have the written authorization of the author, without which, the distributor is guilty of copyright violation.  To receive such authorization, send this completed application, along with a copy of your software library's order form to Helios Software Solutions.  Include £5.00 to cover the cost of processing the application and of sending you the latest version of Windev.  For distributors already recognized by the Association of Shareware Professionals, this application is not necessary.

Name of Organization: ____________________________________

Your Name: _______________________________________________

Address:   _______________________________________________

_______________________________________________

_______________________________________________

TERMS OF DISTRIBUTION OF WINDEV:

1.  The fee charged may not exceed $10, including postage, mailer and any other charges.

2.  Your library's catalog or listing must state that this program is not free, but is copyrighted software that is provided to allow the user to evaluate it before paying.

3.  The offering and sale of Windev will be stopped at any time the author so requests.

4.  Copies must be made from the copy of Windev sent to you with this agreement. This is required for control purposes.

5.  Problems or complaints about the program will be reported to the author for investigation.  In return for a license to charge a fee for the distribution of the program Windev, I agree to comply with the above terms of distribution.

Signed, ____________________________________  ______________

your signature                        date

__________________________   _________   ______________

Keith MacDonald         control #         date


Menu Commands

From the menu bar you can choose from the following menus.  Click on the one you require help on.

File Menu Commands

Edit Menu Commands

Search Menu Commands

Settings Menu Commands

Project Menu Commands

Tools Menu Commands

Window Menu Commands

Help Menu Commands


File Menu Commands

The commands available in the File menu are as follows.  Click on the one you require help on.

New

Open

Save

Save As

Save All

Manage Files

Print

Print Setup

Mail

Exit


Edit Menu Commands

The edit menu can either be pulled down from the menu bar as usual, or a short version can be popped up at the cursor position by pressing the right mouse button.  In the latter case, either mouse button can then be used to select a command.  Most editing commands can be performed from the keyboard as well.

The editing commands available in the menu are as follows.  Click on the one you require help on.

Undo

Redo

Cut

Copy

Cut Append

Copy Append

Paste

Paste File

Upper Case

Lower Case

Toggle Case

Capitalize

Transpose

Join Lines

Shift Left

Shift Right


Search Menu Commands

The commands available in the Search menu are as follows.  Click on the one you require help on.

Find

Find Next

Find Previous

Replace

Replace Next

Goto Line

Match Brace

Global Search


Settings Menu Commands

The commands available in the Settings menu are as follows.  Click on the one you require help on.

Global Settings

Maintain Indentation

Block Indent

Read Only

Show Horiz Scroll

Show Vert Scroll

Mark Clean

Font


Project Menu Commands

The commands available in the Project menu are as follows.  Click on the one you require help on.

Build

Build Target

Test Project

Compile

Link

Debug

View Results

Select Project

Configure


Tools Menu Commands

The commands available in the Tools menu are as follows.  Click on the one you require help on.

Compare Files

Extract Strings

System Metrics

Run

User


Window Menu Commands

The commands available in the Window menu are as follows.  Click on the one you require help on.

Tile Across

Tile Down

Cascade

Arrange Icons

Close All


Help Menu Commands

The commands available in the Help menu are as follows.  Click on the one you require help on.

Contents

Search for Help on

Window Context

SDK

Environment

File Statistics

About Windev


Tool Bar Commands

The tool bar is positioned just below the menu bar as shown below:

It provides shortcuts for commonly used menu commands.  To get an explanation of what a particular tool does, click on the corresponding button below.

File Access Group:

Editing Group:

Searching Group:

Project Group:

Help Group:


File: New

Opens a new file with the name Filen, where n is 1 for the first and 2 for the second etc.


File: Open

Opens an existing, or new named file, using the standard Open File dialog.  If you select read only, you will not be able to edit the file.  Note that you can use multiple selection in this dialog to open as many files at once as you want.  Files that contain Unix or Macintosh end of line sequences are transparently handled, and will be saved in the same format by default.


File: Save

Saves changes to the file you are working on.  When you choose Save, the file remains open so you can continue working on it.  If the file started out with Unix or Macintosh end of line sequences, they will be preserved.


File: Save As

Saves a new or existing file, using the standard file Save As dialog.  For a new file you specify the name you want it saved as, or you can save an existing file under a new name, in which case the original remains unchanged.  You can also use this command to change the original end of line sequences to match DOS, Unix or Macintosh semantics.

When you choose Save As, the file remains open so you can continue working on it, but its title is changed to match the saved file name.


File: Save All

Saves, without prompting, all existing files which have been changed since they were opened.  You will be prompted to supply a name for any new files, using the standard file Save As dialog.


File: Manage Files

This allows you to manage your files on disk.  You can copy, delete and rename files, and change their last modified timestamp to the current time.


File: Print

Prints the file you are working on.  Using the standard Print dialog, you can specify how many copies to print , which pages to print, and the printing quality. You can also choose another printer, or to print to a file instead of a printer.


File: Print Setup

Selects a printer and sets printer options ready for printing, using the standard Printer Setup dialog.  The available options depend on the printer you select.


File: Mail Command
File: Mail

This command is only enabled if your computer has a MAPI compliant mailing system, such as Microsoft Mail, installed.  It logs you on to the mail system so that you can mail the file in the active window to someone.  You don't need to save the file first - if it has been modified, the contents of the edit workspace are mailed via a temporary file.  You can continue editing after sending the file, but the recipient won't see any subsequent changes.


Exit
File: Exit

Closes the files you have been working on and quits Windev.  You are given the choice of saving any changes to each open file before quitting.


Edit: Undo

Undoes your last typing or editing action.


Edit: Redo

Repeats your last typing or editing command. (Not available in all versions.)


Edit: Cut

Deletes text from your file and places it onto the Clipboard, replacing the previous Clipboard contents. This command is available only when text is selected.


Edit: Copy

Copies text from your file and places it onto the Clipboard, leaving the original intact and replacing the previous Clipboard contents.  This command is available only when text is selected.


Edit: Cut Append

Deletes text from your file and places it onto the Clipboard, appending to the current Clipboard contents. This command is available only when text is selected.


Edit: Copy Append

Copies text from your file and places it onto the Clipboard, leaving the original intact and appending to the current Clipboard contents.  This command is available only when text is selected.


Edit: Paste

Copies the information on the Clipboard into the file at the insertion point, replacing any selected text.  This command becomes available when information has been copied or cut and placed onto the Clipboard.


Edit: Paste File

Prompts you for the name of a file, using the standard file open dialog, and copies its contents into the file you are editing.  The new text is placed at the insertion point, replacing any selected text.


Edit: Upper Case

Converts selected text to its upper case equivalent.  If no text is selected, the character at the insertion point is converted, and the insertion point is moved on to the next character.


Edit: Lower Case

Converts selected text to its lower case equivalent.  If no text is selected, the character at the insertion point is converted, and the insertion point is moved on to the next character.


Edit: Toggle Case

Converts selected text such that capital letters become lower case, and vice versa.  If no text is selected, the character at the insertion point is converted, and the insertion point is moved on to the next character.


Edit: Capitalize

Converts selected text by making the first character of the selection upper case (if it is a letter), and the rest lower case.


Edit: Transpose

Swaps the characters or lines at either side of the insertion point.  This command is not valid if text is selected.  The lines either side of the insertion point are swapped if it is at the beginning or end of a line.


Edit: Join Lines

Joins lines together, replacing leading spaces and tabs with a single space.  If multiple lines are selected, they are all joined to the first, otherwise the line containing the caret has the next line joined to it.


Edit: Shift Left

Reduces the indentation amount of all lines containing selected text, or the line containing the insertion point if nothing is selected.  The indentation is reduced by the Indent Spacing, which is defined in the Global Settings.


Edit: Shift Right

Increases the indentation amount of all lines containing selected text, or the line containing the insertion point if nothing is selected.  The indentation is increased by the Indent Spacing, which is defined in the Global Settings.


Search: Find

This command displays the Find dialog.  You can use it to search the active window for text patterns.


Search: Find Next

This command searches for the next occurrence of the current search string in the active window.


Search: Find Previous

This command searches for the previous occurrence of the current search string in the active window.


Search: Replace

This command displays the Replace dialog.  You can use it to search the active window for text patterns, and replace them.


Search: Replace Next

This command searches for the next occurrence of the current search string in the active window, and replaces it with the current replacement text.


Search: Goto Line

Prompts for a line number to go to in the active window.  This defaults to the line the caret was at before the last go to, find or home/end command.


Search: Match Brace

Selects the bracket that matches the ( { [ or ] } ) currently selected, or to the right of the caret.  If there is not a bracket to the right of the caret, and there is one to the left, the one matching that is selected.  You can use a keyboard command (Shift+F9 by default) to select all text up to the matching bracket.  Forward selection includes both brackets, backwards includes neither.


Search: Global Search

Starts the Global Search dialog to enable searches for text patterns in a set of text files, similar to the UNIX™ Grep command.  Output is to a window, which enables hypertext jumping to any reported occurrence of the pattern.


Settings: Global Settings

This displays the Global Settings dialog, enabling changes to settings that affect all windows.


Settings: Maintain Indentation

Toggles maintaining indentation for the left margin of the active window.


Settings: Block Indent

Toggles the automatic block indentation setting for the active window.


Settings: Read Only

Toggles the read-only state of the active window.  When checked, no edits are allowed.


Settings: Show Horiz Scroll

Toggles the display of a horizontal scroll bar in the active window.


Settings: Show Vert Scroll

Toggles the display of a vertical scroll bar in the active window.


Settings: Mark Clean

If the active window has been edited, this command will mark it as clean.  This does not restore it to its original state, but the changes will not be saved when the window is closed.  Any subsequent edits cancel this effect.


Settings: Font

This allows the font used in the active window to be changed via the standard font selection dialog.  Only fixed width fonts are allowed.


Project: Build

This starts the configured system builder to build the project in a background process.  You will be prompted to save any changes to files you are editing first.


Project: Build Target

This prompts for a target to build before starting the configured system builder in a background process.  You will be prompted to save any changes to files you are editing first.


Project: Test Project

This runs the configured project's executable application in its own window.


Project: Compile

This compiles the file in the active window using the configured compiler.  You will be prompted to save any changes to files you are editing first.  For all non-trivial projects, you are recommended to use the Build Target command instead.


Project: Link

This links the project's object files using the configured linker.  For all non-trivial projects, you are recommended to use the Build command instead.


Project: Debug

This runs the configured debugger on the project's executable application.


Project: View Results

This displays the output of the last Build, Compile or Link command in a window.  The output is automatically displayed if any errors were reported, and hypertext jumping can be used for making corrections.  This command is disabled once the output has been displayed.


Project: Select Project

This allows you to select an existing project, or enter the path of a new one.  When you switch to an existing project, the environment that you established when you last worked there is reinstated, and the files that you were working on are loaded into edit windows.


Project: Configure

This displays the Configure Project dialog.  A new project must be configured before commands such as Build, Compile and Link are used.


Tools: Compare Files

This displays a dialog enabling two text files to be compared.  The results are displayed in a window in a format similar to the UNIX™ Diff command.


Tools: Extract Strings

Displays a dialog enabling searches for ANSI text strings in binary files.  By default, strings of four or more consecutive printable characters are listed, but you can specify your own filter.  Note that UNICODE strings are not supported.


Tools: System Metrics

Displays the System Metrics dialog.  This lists all Window's system metrics, and displays an explanation of the selected metric, along with its current value.


Tools: Run

This allows you to run any executable file (or data file if an appropriate association has been set up with File Manager).  You can supply argument macros as run-time arguments.  The dialog is initialised with the last file you ran.  The default file extension used is .EXE.


Èr4
Closes all child windows.  If any edit windows have been modified, you will be prompted to save the changes.


Window: Use Selector

Displays the Select Window listbox.  You can use this to switch between active windows, instead of selecting them from the Window menu.


Help: Contents

Displays the table of contents for Windev help.  You can use Help's hypertext links to access help on any topic from here.  Help's Contents button can be used to return to this point from any topic.


Help: Search

Displays the index of help topics for Windev.


Help: Window Context

Displays help on the item at the caret position in the active window, using the following algorithm:  If it's a C or C++ language key word, help is displayed using the command configured for the project in the environment section; else if it's a line starting "#include...", or "!include..." the included file is opened in a read-only window; otherwise the Windows SDK help file is used.  The keyboard shortcut for this is F1.


Help: SDK

Displays help on the SDK item at the caret position in the active window, using the Windows SDK help file.  The keyboard shortcut for this is Shift+F1.


Help: Environment

Displays help on the programming language item at the caret position in the active window, using the command configured for the project in the environment section.  The keyboard shortcut for this is Ctrl+F1.


Help: File Statistics

This displays the number of lines and characters in the active window, on the status bar for a few seconds.  The keyboard shortcut for this is Ctrl+Shift+F1.


Help: About Windev

This displays Windev's About dialog.  It will contain your registration number, name and company, if you are a registered user.


Changing Project Settings
See Also: Selecting the Working Project

Project settings are maintained in initialisation files.  You should not edit these files manually, since all changes can more safely be made by choosing the Configure command from the Project menu.  This will present you with the following dialog box, which has the default settings shown.  Click on any field for more information.


Target Executable

This is the name of the target file that your project creates.  It will typically be the name of an executable or dynamic link library file.  It is required for the Project Menu's Link, Test and Debug commands.


Target Arguments

If your target executable requires arguments when it is run, they should be entered here.  The arguments are used for the Project Menu's Test and Debug commands.


Debug Build

When checked, the debugging options for compiling, linking and building will be applied.


Environment

This configures Windev for a particular compiler.  You can choose one of the options from the drop down listbox.  The first time you make a selection, all the defaults for that compiler will be set.


Current Settings

This listbox shows the current settings for your project.  You cannot make any changes here.  See Project Variables for more information.


Option

This field shows the key part of the setting you have highlighted from the current settings listbox.  You cannot type in this field.


Setting

This field shows the current setting of the key shown in the Option field.  You can edit the setting if you require.  Press the Set button to make the changes permanent.  The current settings listbox will then be update to show the new setting.


The Set Button

Press this button to apply any changes you have made in the Setting field.


The Close Button

Press this button when you have finished viewing or making changes to your project configuration.


Selecting the Current Project
Selecting the Working Project
See Also: Changing Project Settings

You can select a project to work on by using the Select Project command on the Project menu.  You will be prompted to supply the name of the directory containing your project in the following dialog.  Click on any field for further information.


Path

Enter the full path to the directory containing the project you want to work on here.  The drop down list contains the most recently used projects for fast selection.


Change To Button

Press this button when you have entered the project path.  This will cause your current environment (active edits etc) to be saved, and the saved environment in the selected project to be reinstated.


Exit Project Button

Press this button if you want to leave the project you are working on, without selecting another project.  This will cause your current environment (active edits etc) to be saved, and the saved environment in Windev's startup directory will be reinstated.  This is useful if you want to make configuration changes which will be applied to all your projects.  See the explanation of how initialisation files work for more details.


Cancel Button

Press this button if you don't want to select a new project.


Finding Text
Examples

You can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions.

To find text

1. From the Search menu, choose Find (ALT, S, F).  This starts a modeless dialog box which remains on the screen until you cancel it.

2. In the Find What box, type in the regular expression to search for.

3. Set the options you want to control the search.

Select	To
Match Whole Word Only	Find occurrences of the text as a whole word.
Match Case	Find text having a certain pattern of uppercase and lowercase letters.
Up	Search the document above the insertion point.
Down	Search the document below the insertion point.
4. Choose the Find Next button. If Windev finds an occurrence, the screen scrolls so you can see the text in context.

5. Either close the dialog by pressing the Cancel button, or continue editing as normal.

Tips

1. The Find What box will be initialised with the current selection, if any (as long as it is on a single line), or the last search pattern entered.

2. If you copied the text you're searching for to the Clipboard, press Ctrl+V to paste the text into the Find What box.

3. To do a forward search after closing the dialog box, press Ctrl+F5.

4. To do a backwards search after closing the dialog box, press Shift+F5.

5. Match Whole Word Only is equivalent to the Regular Expression \<RE\>.


Finding and Replacing Text
Examples

You can find and replace each or every occurrence of a text pattern.  For details on how to specify a search pattern, see Finding Text or Regular Expressions.

To Replace Text

1. From the Search menu, choose Replace (ALT, S, R).  This starts a modeless dialog box which remains on the screen until you cancel it.

2. Specify the text to replace as described in Finding Text.

3. Type the Replacement Expression in the Replace With box.

4. Click on Scope is Selected Text Only if you want to restrict the Replace All option to the currently selected lines.

5. Choose one of the following actions:

a) Press Find Next to select the next occurrence.

b) Press Replace to replace the current selection.

c) Press Replace All to replace all occurrences of the search text.

6. Either close the dialog by pressing Cancel, or continue editing as normal.

Tips

The Replace button will replace the current selection, so make sure you press Find Next first.


Searching Files for Text

To search a set of files for a given Regular Expression, choose Global Search from the Search menu.


Examples: Finding Text
Examples - Finding Text
See Also: Regular Expressions

1.  Find all trailing spaces:

[ \t]+$

finds one or more spaces or tabs followed by the end of line.

2.  Find an empty line:

^$

finds the beginning of a line immediately followed by its end.

3.  Find everything on a line:

^.*

finds the beginning of a line, followed by zero or more of any characters, up to the end of the line.

4.  Find "$12.34":

\$12\.34

Note that '.' and '$' have been escaped using the backslash to hide their regular expression meanings.

5.  Find any valid C language variable name:

\<[ a-zA-Z][ a-zA-Z0-9]*

finds a word starting with an underscore or alphabetic character, followed by zero or more underscores or alphanumeric characters.

6.  Find an inner-most bracketed expression:

([^()]*)

finds a left bracket, followed by zero or more characters excluding left and right brackets, followed by a right bracket.

7.  Find a repeated expression:

\([0-9]+\)-\1

This uses a tagged expression "\(...\)" to find one or more digits, followed by a hyphen, followed by the string matched by the tagged expression.  So this regular expression will find 12-12, but not 12-34.


Examples:  Replacing Text
See Also: Replacement Expressions

1.  Find any alphabetic word starting with an upper case letter:

[A-Z][a-z]+

and replace with the same word all in upper case:

\U&

2.  Find a C language variable name starting with a lower case letter:

\<[a-z][ a-zA-Z0-9]*

and make the first letter upper case:

\u&

3.  Find two numeric strings separated by one or more spaces:

\([0-9]+\) +\([0-9]+\)

and swap them around, using a tab to separate them:

\2\t\1

4.  Find "paste":

paste

and replace with the contents of the clipboard:

\p


Regular Expressions
Examples

A regular expression (RE) is a mechanism for describing patterns in text when executing the Find Command, the Replace Command, Global Searches, and Extracting Strings from binary files.  An RE is made up of ordinary characters from the ANSI character set, some of which take on the special meanings described below.

Ordinary Characters

An ordinary character is an RE that matches itself.  It can be any character in the ANSI character set except <newline> and the special characters listed below.  An ordinary character preceded by a backslash is treated as the ordinary character itself, except when the character is (, ), <, >, or the letter t, or the digits 1 through 9.  In all contexts, a tab is represented by the pair \t.

Special Characters

These special characters, can be rendered ordinary by preceding them with a backslash (\), if they are single special characters, or removing the preceding backslash if they are compound special characters.

Character	Context
. [ \	The period, left square bracket, and backslash are special except when used in a Class Expression.
* +	Asterisk and plus are special except when used in a class expression, as the first character of an RE, or as the first character of a Tagged Expression.
-	The hyphen is special in a Class Expression, except as the first or last character of that expression.
^	The circumflex is special when used as the first character of an entire RE (see Expression Anchoring), or as the first character of a Class Expression.
$	The dollar sign is special when used as the last character of an entire RE (see Expression Anchoring).
Wildcard Character

The period (.), when used outside of a class expression, matches any character except newline.

Repetition Expressions

The asterisk (*) matches zero or more occurrences of the preceding regular expression, whilst the plus sign (+) matches at least one occurrence.  For example, A*b+ matches zero or more A's followed by one or more b's.

Class Expressions

A class expression is an RE, enclosed in square brackets ([ ]), that matches any one of the elements contained in the brackets.  The permitted elements of a class expression are:

Simple Characters

These are single characters that match themselves.  To match a right square bracket (]), it must be the first character of the class expression, after any initial circumflex (see Negated Class Expressions).  To match a hyphen, it must be either the first or the last character of the class expression.  For example [AaBb] matches upper or lower case A or B.

Negated Class Expressions

If the first character of a class expression is the circumflex (^), the expression matches any character not in the class.  For example [^AB^] matches any character except A, B and the circumflex itself.

Range Expressions

A range expression is two characters separated by a hyphen (-).  It matches any of the characters in the ANSI collating sequence, between the two characters.  For example, [A-Za-z0-9-] matches any upper or lower case letter or digit, or the hyphen itself.

Expression Anchoring

An RE can be restricted to matching strings that begin or end a line or word, as follows:

^	A circumflex as the first character of an RE anchors the expression to the beginning of the line.
$	A dollar sign as the last character of an RE anchors the expression to the end of the line.
\<	The character pair \< anchors the next RE to the start of a word.
\>	The character pair \> anchors the previous RE to the end of a word.
Tagged Expressions

A tagged expression is an RE that starts with the pair \( and ends with the pair \).  There can be up to nine such expressions in a complete RE.  Such an expression matches the same as the expression without the surrounding \( and \).  The first expression defined in this way can be referenced as \1 later in the RE, and so on up to \9 for the ninth tagged expression.  Each such reference matches the same string as its original tagged expression.  For example \(tu\) \1 matches the string "tu tu".

References to tagged expressions can also be used in Replacement Expressions.


Replacement Expressions
Examples

Replacement expressions are used to substitute text in conjunction with Tagged Regular Expressions, when using the Replace Command.

Expression	Definition
&	Substitute the text matching the entire search pattern.
\0 to \9	Substitute the text matching tagged expression 0 through 9.  \0 is equivalent to &.
\n	Substitute a newline.
\t	Substitute a tab.
\u	Force the next substituted character to be in upper case.
\l	Force the next substituted character to be in lower case.
\U	Force all subsequent substituted characters to be in upper case.
\L	Force all subsequent substituted characters to be in lower case.
\E or \e	Turns off previous \U or \L.
\p	Paste in the contents of the clipboard.

To substitute a literal \ or &, use \\ and \&.


Changing Global Settings

Global settings are maintained in initialisation files.  You should not edit these files manually, since all changes can more safely be made by choosing the Global Settings command from the Settings menu.  This will present you with the following dialog box, which has the default settings shown.  Click on any field for more information.

If you exit from any project (using the Project Select command) before making any changes, the settings will apply to all projects (unless locally overridden), otherwise just the project you are working on.


Save Settings on Exit

When this option is checked, all other changes to settings will be saved when you exit from Windev.


Remember Active Edits

When this option is checked, all files that you are currently editing will be remembered, and automatically reopened next time you start Windev.


Show Status Bar

When checked, a status bar will be displayed at the bottom of Windev's frame window.


Show Tool Bar

When checked, a tool bar will be displayed at the top of Windev's frame window.  This provides short cuts for frequently used commands.


Show Clock

When checked, a digital clock will be displayed on the right hand side of the status bar.


Show Horizontal Scroll Bar

When checked, each new window that Windev creates will have a horizontal scroll bar.  Existing windows can be given scroll bars using the Settings menu.


Show Vertical Scroll Bar

When checked, each new window that Windev creates will have a vertical scroll bar.  Existing windows can be given scroll bars using the Settings menu.


Enable Visible Alerts

When checked, the border of Windev's frame window will be flashed whenever an alert is sounded.


Enable Project Features

When checked, the Project menu is enabled.  This allows you to compile, link, build or configure your project, and to switch between projects.


Create .BAK Files

When checked, each time you modify and save a file, the original will be preserved under the same name except for the extension .BAK.


Confirm File Updating

When checked, if you perform any operations that require file changes to be written to disk before continuing (such as compiling a file, or exiting from Windev), you will be prompted to confirm each update.  Otherwise all modified files will be automatically written to disk.


Use Space as Word Delimiter

When checked, a word is defined as a sequence of characters excluding space and end of line.  When clear, the definition is changed to match a C language token.  You can see the difference when you select a word by double clicking with the left mouse button.


Maintain Indentation

When checked, each new line that you type in an edit window will start off being indented by the same amount as the preceding line.  You can then increase or decrease the indentation level using the Edit Menu's Shift Left and Shift Right commands.  Clearing this setting will cause Block Indent Automatically to be also cleared.  Any change to the global setting will only affect subsequent windows that you open.


Block Indent Automatically

When checked, if you start a new line in an edit window, and the preceding line ends with a { ) or :, the new line will be indented further by the amount specified in the indent spacing field.  Checking this setting will automatically cause Maintain Indentation to be checked.  Any change to the global setting will only affect subsequent windows that you open.


Tab Spacing

Tab stops are set in edit windows every N spaces, where N is the value entered in this field.


Indent Spacing

This specifies the number of spaces to indent blocks of text that are at different levels of indentation.  This value is used by the Shift Left and Shift Right Edit menu commands, and for automatic indentation


Screen Font

If you press this button, the standard font selection dialog is displayed.  Use this to select the font used in all of Windev's windows.  You can change the font used in individual windows from the Settings Menu.  Note that only fixed spaced fonts are allowed.


Printer Font

If you press this button, the standard font selection dialog is displayed.  Use this to select the font used on your printer.  Note that only fixed spaced fonts are allowed.


Page Setup

If you press this button, the Page Setup dialog is displayed.  This lets you set the page header, trailer and margins.


Key Bindings

If you press this button, the Key Bindings dialog is displayed.  Use this to set your own preferences for keyboard accelerators for menu commands.


Tools

If you press this button, the Tools dialog is displayed.  Use this to configure the Tools menu.


Filters

If you press this button, the File Filters Dialog is displayed.  Use this to configure the list of filters on the File Open dialog.


Apply

If you press this button, all changes that you have made will be carried out.  This includes font, page setup, and key bindings changes.


Cancel

If you press this button, all changes that you have made will be discarded.  This includes font, page setup, and key bindings changes.


Tools Menu Customisation

You can configure the Tools Menu by using the Settings/Global command, and clicking on the Tools button of the Global Settings dialog.  You can use argument macros in the "Arguments" and "Initial Directory" fields.  Click on any field for more information.

Keyboard Accelerators

You can define a keyboard accelerator for each tool that you have in the Tools Menu, but note that they are dependent on the order of the tools in the menu.  If you change the position of a tool in the menu, it will inherit the accelerator of the tool previously at that position.


Menu Contents

This listbox shows the menu text for each definable tool, in the order that they appear on the Tools Menu.  There can be 10 tools at most..  The settings for the selected entry are shown in the other fields, where they can be directly modified.


Command Line

You can enter the name of the program to run in this edit control.  It need not be fully qualified if it can be found in your search path.  You could alternatively put the name of a data file here if an appropriate association has been set up with File Manager.


Menu Text

Type the text that you wish to appear on the tools menu here.  If you place an '&' before any character, that character can be used for menu selection.


Arguments

Type the run-time arguments for the command line here.  If you check Prompt for Arguments the Tool Arguments dialog box will be initialised with the text you type here.  The arguments can be a mixture of literal text and argument macros.


Initial Directory

Type the fully qualified path of the initial directory here.  If left empty, it will be that of the program in the command line.  You could use an argument macro here.


Prompt for Arguments

Check this box if you want to vary the arguments each time you run this tool.  You will be prompted to supply the arguments in the Tool Arguments dialog box.  This will be initialised with any text you type in the Arguments field.


Run Minimized

Check this box if you want the tool to start up in the minimized, or iconic, state.


Capture Output

Check this box if you want the tool's output to be captured in a window.  This only makes sense for console applications that write to stdout.  The right mouse button can be used to do Hypertext jumps if the output is formatted correctly.


New

Click on this button to add a new tool.  It displays the standard file open dialog to allow you to select a new command.


Delete

Click on this button to delete the tool highlighted in the menu contents listbox.


Move Up

Click on this button to move the tool highlighted in the menu contents listbox up one place in the Tools Menu.


Move Down

Click on this button to move the tool highlighted in the menu contents listbox down one place in the Tools Menu.


OK Button

Click on this button to save your changes.  You will also need to click on the Apply button on the Global Settings dialog.  Cancelling either dialog will lose any changes.


Argument Macros
Using Argument Macros

Programs that you add to the Tools Menu can be started with context dependent information using argument macros.  These can be specified in the "Arguments" and "Initial Directory" fields of the Tools dialog, and in the Run and Tool Arguments dialogs.  The following macros are defined:

Macro Name	Expanded String
$File	The fully qualified filename of the current source.
$FileName	The simple filename of the current source.
$FileDir	The drive and directory of the current source.
$Line	The caret line within the current source
$Col	The caret column within the current source
$Target	The fully qualified filename of the target executable defined in the Configure Project dialog.
$ProjDir	The fully qualified current project directory.
$ProjName	$Target stripped of its path and extension.
$RC	$Target with its extension replaced by ".RC".
$Dir	The current working drive and directory.
Notes:

Any macro that is inappropriate in the current context is replaced by an empty string.

Macros can be in any case (eg. $File == $file == $FILE).

Fully qualified is defined to mean drive + path from the root of that drive.

In any expression using macros, each macro must be terminated by a non-alphabetic character, or the end of line.