         With Class Newsletter Number 1 - 6 Sept 1994

1 - MicroGold Software Announces With Class Version 2.0

On 6 September 1994, Mike Gold of MicroGold Software announced
With Class Version 2.0.   This version is currently in beta
testing.   This new version is a completely rewritten product in
Visual C++ Version 1.5.   The following are key enhancements to
Version 2.0:
- Enhanced print, print preview, and help,
- Enhanced drawing capability including horizonal/vertical lines
for relationships, symbol connectors, and rapid redrawing.
- Greater support for the Rumbaugh OMT graphic notation including
roles.
- OLE 2.0 support for inplace editing and object insertion.   For
example, you can insert a With Class diagram (.omt file) into a
Microsoft Word document and you can insert a Visio symbol into a
With Class diagram.
- Scripting language to create custom scripts for code
generation and reports.

2 - MicroGold Software Releases With Class Version 1.6

On 6 September 1994, Mike Gold of MicroGold Software released
With Class Version 1.6.   There are three versions:
1) Professional Network Version, 2) Professional Version with
unlimited classes 3) Educational (Shareware) Version with a
limited number of classes.   Version 1.6 provides several C++
code generation and reverse engineering enhancements.   The
following are the enhancements in Version 1.6:
- Enhanced reverse engineering for Visual C++ programs.
- Icon bars have been moved to provide move drawing space.
- For classes using arrays in Borland C++ 3.1 and 4.0,
constructors have been updated with an initializer, e.g. Car() :
wheelArray (4) { .. }.
- Streamable classes for Borland C++ 4.0 may be generated, e.g. 
     class Car : public TStreamableBase { .. }.
- For Borland C++ 4.0, template classes for lists, arrays,
stacks, and bags may be generated.
- For Visual C++, serialized classes may be generated.
     
3 - Generated Constructors for Classes with Arrays in Borland C++

Array objects of Borland C++ 3.1 and 4.0 array classes, must be
statically allocated.   Therefore, the constructors must have an
initializer as shown below in the With Class Version 1.6
generated code fragment.   Note that each of these constructors
have the initalizer "wheelArray (4)":

#include <classlib\arrarys.h>
class Car {
  TArrayAsVector<Wheel> wheelArray;
  int speed;
public:
  Car () : wheelArray (4) { }                     //Default
Constructor
  Car (int aSpeed) : wheelArray (4) { speed = aSpeed; }    
//Constructor with Args
  Car (const Car& aCar) : wheelArray (4) { speed = aCar.speed;
}//Copy Construc

4 - Generated Streamable Classes for Borland C++ 4.0

With Class 1.6 generates streamable classes for Borland C++ 4.0. 
The generated code is based upon the streamable class example in
C:\BC4\EXAMPLES\CLASSLIB\PSTREAM.PSTREAM2.CPP.   The following is
a code fragment of generated code:

class  Car : public TStreamableBase {
     int speed;
public:
     ....
     DECLARE_ABSTRACT_STREAMABLE( , Car, 1);
};
//////////////////////////////////////////////////////////////
#include <classlib\objstrm.h>
#include "Car.h"
IMPLEMENT_ABSTRACT_STREAMABLE(Car)
void * Car::Streamer::Read(ipstream& is, unsigned long ver) const
{  is >> GetObject()->speed;   return GetObject(); };

void Car::Streamer::Write(opstream& os) const
{ os << GetObject()->speed;   };

Comments on this streamable feature should be sent to MicroGold
at 71543.1172@compuserve.com.

5 - Generated Serialized Class for Visual C++

With Class 1.6 generates serialized classes for Visual C++.  The
following is a fragment of generated code:

class Car : public CObject {
     ....
     void Serialize (CArchive& ar);
     DECLARE_SERIAL (Car) }
     void Car::Serialize (CArchive& ar) {
          if (ar.IsLoading () ) { ar >> (WORD &) gasQty; }
          else
          { ar << (WORD) gasQty; }
     }
In the Visual C++ Document View architecture, update the
Serialize function in the CCarDoc.cpp file as follows:
      void CCarDoc::Serialize (CArchive& ar)
          {  if (ar.IsStoring() ) {ar << &car1; }
              else {CObject *pObject = &car1; ar >> pObject; }
          }

With Class Info - With Class is available from MicroGold Software
696 Birch Hill Drive, Bridgewater, NJ, 08807 telephone
908-722-6438 (voice and fax) and 71543,1172@compuserve.com.   
On CompuServe, you may find the shareware version of With Class
in the Borland Forum - Borland C++ for Windows - Non Tech Cust
Service with the file name wclass16.zip.   On the Internet, 
With Class is available at oak.oakland.edu in the 
pub\msdos\windows3 directory with the file name wclass16.zip. 

Newsletter provided by With Class User Group by
Richard Felsinger, RCF Associates, 960 Scottland Dr,
Mt Pleasant, SC 29464  803-881-3648 (voice & fax)
E-mail 71162.755@compuserve.com  8/31/94.  RCF Associates
provides consulting and training services in object-oriented
analysis, design, and programming in C++, Eiffel, and other
languages.  Comments and suggestions on this newsletter are
solicited.



