---------------------------------------------
TurboCAD v4.1 READ ME - ENABLE BASIC 
---------------------------------------------

---------------------------------------------
1. INTRODUCTION 
---------------------------------------------

Thank you for purchasing TurboCAD v4.1 or 
TurboCAD v4.1 Professional.  We at IMSI are 
sure that you will find 
TurboCAD to be an invaluable resource for 
your day-to-day drawing needs.  
Please review this Enable Basic README 
document which contains late breaking 
information, information not included in the
printed documentation, or corrections to the 
current documentation. 

---------------------------------------------
2. FEATURES FIXED IN THE MAINTENANCE RELEASE
---------------------------------------------

TCWLayerCreate now accepts a color.

TCWLayerPropertySet now correctly sets colors 
in the range 0 - FFh (shades of red).  This 
would previously be interpreted as a short 
integer, report ‘Argument(s) are invalid’ and 
set the color to black.

TCWAppPropertySet, TCWDrawingPropertySet, and 
TCWGraphicPropertySet
These features now correctly accept doubles 
instead of requiring their conversion to long 
integers.  Previously, setting ‘PenWidth’, 
for example, would round 0.3 to 0 and 0.5 to 
1.

---------------------------------------------
3. ADDENDA:
   Programming TurboCAD with Enable BASIC
---------------------------------------------

Page 48, keyword TCWBasicRun

Return value: None

The return value should be: 0 if no errors.  
Non-zero if errors, use TCWLastErrorGet to 
retrieve error string.

---------------------------------------------

Page 55, keyword TCWDrawingSaveAs

Input Parameters: String drawingname

Add: Boolean SaveSelection. If the value is 
set to true, it will save only selected 
objects.  If the value is set to false, it 
will save the entire drawing.

Example: result = TCWDrawingSaveAs 
(‘newdrawing.tcw’, false)

WARNING, This will overwrite the target file 
with no confirmation.

---------------------------------------------

Page 64, Keyword TCWSelectionCount

See Also: TCWSelection
Should read: TCWSelectionAt

---------------------------------------------

Page 76, keyword: TCWLineParallel


‘This function will draw a (double) line 
parallel to an existing line, at a specified 
distance from the line.’

Should read: ‘This function will draw a 
(double) line parallel to an existing line, 
at a specified point.’

---------------------------------------------

Page 82, keyword: TCWDoubleLineParallel

‘This function will draw a (double) line 
parallel to an existing line, at a specified 
distance from the line.’

Should read: ‘This function will draw a 
(double) line parallel to an existing line, 
at a specified point.’

---------------------------------------------

Page 99, keyword: TCWDrawingPropertySet, 
Input Parameters

‘Layer’		layer id as an Integer

Add the following text:  ...or layername as a 
string

---------------------------------------------

Page 110, keyword: TCWGraphicPropertyGet, 
Input Parameters

‘BrushDrawMode’	brush drawing mode as an 
Integer

Should read: 0 if Alternate or none, 1 if 
Winding.

‘PenStyle’	pen style as Integer

Should read: pen style as String  (i.e. 
‘CONTINUOUS’, ‘DASHDOT’, ‘BYLAYER’, 
‘BYBLOCK’)

---------------------------------------------

Page 111, keyword TCWGraphicPropertyGet, 
Input Parameters

‘Closed’	Closed flag as Long (READ ONLY)

Add the following text: 1 = closed, 0 = open

‘Kind’		graphic type as long (READ 
ONLY)

Add the following value list:

GK_GRAPHIC         &H0B	-	11 decimal	
GK_ARC             &H02
GK_TEXT            &H06
GK_DATA            &H0E
GK_OLEITEM         &H0F
GK_EED             &H10
GK_INSERT          &H11
GK_ROOT            &H01
GK_3DMESH          &H03
GK_SURFACE         &H12
GK_VIEWPORT        &H04

Return value:

‘BrushStyle’	(Double)

Should read:  (String)

‘Layer’		(Integer)

Should read:  (String)

‘PenStyle’	(Integer)

Should read:  (String)

‘Selected’	-1 if selected, 0 if not (Long)

Should read: 1 if selected, 0 if not (Long)

---------------------------------------------

Page 126, keyword TCWLayersAt, Input 
Parameters

None

Should be: Long Index

---------------------------------------------

Page 128, keyword TCWLayerPropertyGet, Input 
Parameters

Long layer	layer id returned from TCWLayerAt

Should read: TCWLayersAt

---------------------------------------------

Page 134, keyword TCWGetPoint, Return Value

Add the following text: Returns &H80004005 
(2147500037 decimal) if user clicks the 
Cancel button.

---------------------------------------------

Page 138, keywords Data Types

Variable		Type Specifier
---------------------------------
String		&

Should be:	$

---------------------------------------------

Page 140, keyword Relational Operators

Operator		Function
--------------------------------
=6			Equals

Should be:		=

---------------------------------------------

Page 141, keywords ByRef and ByVal

Add the following after the list of reserved 
words:

ByRef and ByVal

ByRef gives other subroutines and functions 
the permission to make changes to variables 
that are passed as parameters.  The keyword 
ByVal denies this permission and the 
parameters cannot be reassigned outside their 
local procedure.  ByRef is the Enable default 
and does not need to be use explicitly.  
Because ByRef is the default, all variables 
passed to other functions or subroutines can 
be changed.  There is only one exception to 
this. The exception is to use the ByVal 
keyword to protect the variable, or use 
parentheses that indicate the variable is 
ByVal.  For example:

SubOne var1, var2, (var3)

The parameter var3 in this case is passed by 
value and cannot be changed by the subroutine 
SubOne.

Function R (X As String, ByVal n As Integer)

The function R is receiving two parameters X 
and n.  Parameter n is passed by value and 
cannot be changed from within the function R.

---------------------------------------------

Page 158, keywords Dim Statement

Add the following text: See also: Public 
Statement

---------------------------------------------

Page 203, keyword Rem Statement

Above the Rem Statement, add the following:

Public Statement

Public variablename[(subscripts)] [ As Type] 
[, name [As Type]]

Allocates storage for and declares the 
datatype of public variables and arrays.  
These are available to all Functions and Sub 
procedures throughout the script file.

---------------------------------------------

Page 210, keyword SendKeys Function

Below the Example add the following text: 
Precede the character with combinations of 
‘+’ for Shift, ‘^’ for Ctrl, and ‘%’ for Alt.

