----------------------------------------
 Advanced Calculator v4.0 for Delphi
 Copyright 1999 by George Barbakadze
 All rights reserved

 http://adcalc.homepage.com
 giga@fnmail.com
 ----------------------------------------

 Compatible with Delphi4, Delphi5

 The fast expression evaluator which can be used to evaluate mathematical
 expressions at run time. There is no restriction in depth or
 complexity of expression. Saves in file and loades from file a
 library of registered variables and functions. Supports complete
 error handling.
 
 1. Expression can contain:

 Arithmetical operations ( +, -, *, /, ^, (...) );
 Comparison operations ( >, <, =, <>, >=, <= );
 Logical operators (And, Or);
 More than 20 standard functions of Extended or Real type;
 Unlimited number of user-defined variables and functions declared at
 design-time and at run-time, no restriction in an amount of
 variables and functions and their parameters.

 2. Default functions

 Functions of EXTENDED or REAL type:
 Frac, Int, Round, Exp, Log, Ln,
 Sin, Cos, ArcSin, ArcCos, Sinh, Cosh, ArcSinh, ArcCosh,
 Tan, CoTan, ArcTan, ArcTanh, Tanh,
 Sqr, Sqrt, Abs.

 Ranges of these functions in full likeness with the Delphi same
 name functions.

 Function If(logical_test, value_if_true, value_if_false)
 Logical_test - is any value or expression that can be evaluated
 to TRUE or FALSE.
 Value_if_true - is the value or expression that is returned if
 logical_test is True.
 Value_if_false - is the value or expression that is returned if
 logical_test is False.
 Function Not(logical_value) returns opposite value of boolean type.

 3. Aditional tools (NEW)

 It is possible to evaluate a text box of expressions, appropriating
 significances of unlimited amount of variables.
 It is possible to organize connection between variables of your
 program (global or local) and variables AdCalc so that appropriating
 significance by one from them, was reflected in other.
 In a text box of expression it is possible to use the sign "//" for
 comments.


 4. Codes and messages of error

 1. Line is Long (Maximum length of identifier is 64 character);
 2. Numerical expression expected;
 3. Boolean expression expected;
 4. Arithmetical sign expected;
 5. Comparison sign expected;
 6. "AND" or "OR" expected;
 7. "(" expected;
 8. ")" expected;
 9. "," expected;
 10. Division by zero;
 11. The parameter is out of range;
 12. Variable name expected;
 13. "=" expected;
 14. ";" or "End" expected.


 5. Installation

 To use this component in your applications:
 Copy the following files into a directory of your choice:
 1) AdCReg.pas
 2) AdCReg.dcr
 3) AdCalc.pas or AdCalc.dcu
 Then:
 Component/Install Component/Browse/AdCReg.pas/Ok/Compile

 6. What's new

 version 3.01.
 In the event OnError and procedures GetExtendedResult and GetBooleanResult,
 is added the parameter "Handle", which specifies the expression - of 
 source of en error.
 
 version 3.02. 
 To kinds of errors is added the code 11 - "The parameter is out of range".
 This error arises when calling of formal parameter of function, where
 number of parameter is out of range.

 Current version 3.1.
 Evaluating a text box of expressions, appropriating significances of
 unlimited amount of variables and accordingly additional error messages.

 Version 3.2.
 Connections between variables of your program and variables AdCalc;
 The sign "//" for comments;
 Descriptions for variables and functions.

 Current version 4.0.
 Increase of a velocity of the analyzer in cyclical evaluations of a
 formula with the help of preliminary compilation of expression.