
	QBuild Tools Read Me


You can use the QBuild Tools to help create complex
question classes for AaWiz.  This approach enables you
to develop and test your question class as a form
(ie. you can use Delphi's form designer to design your
controls and create event handlers for them).  You then
convert your form into a control and create a question
class wrapper around the control.

IMPORTANT:  Question classes built with QBuild will only
run correctly in AaWiz version 1.02 and above.  However,
most users should have this version.


(A) USING THE TAAQBUILDER COMPONENT

--------------------------------------------------------------
1) Create Your Form

Develop and test the form that will be converted into a
control.  You can add most components to the form and
create event handlers for the components.  However, since
you will be changing the form's parent class from TForm to
TAaQuestionCtl, do not use or override methods and/or properties
that are specific to TForm.  

Hint: set the ParentFont property of all controls to true, so
they get set to the Wizard.NormalFont guideline when they are
displayed in the wizard.

--------------------------------------------------------------
2) Specify the Form Name

Set the form's name to something intuitive -- remember that
the form will be converted into a control that will be used
by your question class.  The convention that Aardvark Consulting
uses is to append "Ctl" to the name of your question class:
for example, the question class TMyQuestion would use a
control named TMyQuestionCtl.

--------------------------------------------------------------
3) Change the Form's Parent Class

Go into the code editor for the form body and change the
interface declaration of the form so that it inherits from
TAaQuestionCtl and not TForm:

change:
	TMyCtl = class(TForm)
to:
	TMyCtl = class(TAaQuestionCtl)

The TAaQuestionCtl class is declared in the aawiz.dcu unit, so
ensure that it appears in your uses clause.

--------------------------------------------------------------
4) Add a TAaQBuilder Component

Add a TAaQBuilder component to the form and double click
on the component.  This will convert the form into a
question control.

Note: if you're interested in how this conversion takes
place, purchase a copy of Ray Lischner's "Secrets of Delphi 2".
It is an excellent reference on Delphi's internals, and
the TAaQBuilder component is derived from one of his
examples.

--------------------------------------------------------------
5) Remove TAaQBuilder and Save the Form

Remove the TAaQBuilder component and then save the form.
Ensure that the aaqbldr unit is removed from your units
clause (Delphi sometimes doesn't remove this properly).
It is recommended that you make a backup copy of the form
to enable you to make changes later to it in the future.



(B) USING THE QBUILD PROGRAM


--------------------------------------------------------------
1) Compile and Run the QBuild Project

Fill in all of the fields on the QBuild form:

a) Question Class Name
the name of the question class (eg. TMyQuestion)

b) Menu Caption
the name of question class as it should be displayed in the
AaWiz designer

c) Class Unit Name
the unit name of the question class (omit the .PAS extension
and path information)

d) Control Class Name
the name of the question control class (eg. TMyQuestionCtl)
that you constructed using the TAaQBuilder component

e) Control Unit Name
the unit name of the question control class that you
constructed using the TAaQBuilder component (omit the .PAS
extension and path information)

f) Base Directory
the drive and directory to create the question class file
in.  If a previous version of the question class file exists
in this directory, it will be overwritten.

g) Link Properties
Indicate the link properties that the question class should
have.  Most question classes are okay with the default "Next"
link property.

--------------------------------------------------------------
2) Click the Generate Button

Click the Generate button to create the skeleton code for
your question class (this will overwrite any existing question
class code, so ensure that you make backups!).  The code
will be created in the directory you specified in the
"Base Directory" option.

--------------------------------------------------------------
3) Add Properties

The generated code will compile and work with AaWiz correctly,
but you'll probably want to add some properties to the
question class.  Note that the question control that you created
is referenced by the "FCtl" private class variable, so that you
can refer to any controls on your question control like:

	FCtl.Label1.Caption := 'Hello';




(C) DISTRIBUTING YOUR QUESTION CLASS

Note that you must include the PAS/DCU file for both the
question class and question control, and the question control's
DFM file when distributing your question class.  All three of
these files should be installed in the same directory.




(D) DISCLAIMER

The QBuild tools are copyright and property of Aardvark
Consulting, 1997.  As these tools are released as freeware,
we cannot provide technical support.  Your bug reports and
other feedback are appreciated, however (aawiz@aardvark.com).

You expressly acknowledge and agree that use of the QBuild Tools
is AT YOUR OWN RISK and that the QBuild Tools are provided 
AS IS" without any warranties or conditions whatsoever.
Aardvark Consulting is not liable for any damages, including
but not limited to, loss of profit, data, or use of the software
or special, incidental or consequential damages, or other similar
claims, even if Aardvark Consulting has been specifically advised of
the possibility of such damages.

AARDVARK CONSULTING SPECIFICALLY DISCLAIMS ALL WARRANTIES,
REPRESENTATIONS, OR CONDITIONS, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTY OR
CONDITION OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. ALL OTHER TERMS ARE EXCLUDED.


