----------------------------------------
Advanced Calculator v5.1 for Delphi
Copyright 1999-2001 by George Barbakadze
All rights reserved

http://ansipars.port5.com
e-mail: support@ansipars.port5.com
----------------------------------------

Compatible with Delphi4 and Delphi5.
Requires the components DList v1.3 and Reader v2.02 or later versions.

A fast run-time expression evaluator manipulating on 5 type of expression.


1. Features

- 5 base type - Integer, Extended, Boolean, String, DateTime;
- High speed;
- Arithmetic operators ( +, -, *, /, Div, Mod, ^ );
- Comparison operators ( >, <, =, <>, >=, <= ) for all types;
- Boolean operators (And, Or);
- Multilevel If - Then - Else statement;
- 47 build in functions;
- Unlimited amount of On-Event evaluated functions and variables;
- Unlimited amount of run-time defined functions and variables;
- Compilation of text for fast repeated evaluation;
- Scientific floating point notations ( 1.2e-3 );
- Full error handling;
- Use of comments in a text of expression;
- Multilevel calling of subexpressions in evaluated On-Events;
- Saving of library of variables and functions in a file;
- Initialization of variables using expressions in an one text box;
- Links between variables of your programm and run-time variables;
- Full help and demo.


The "And" and "Or" operators can be used only for values of Boolean type,
Therefore their priority less than priority of the comparison symbols.
For example:
expression 10>3 and 5>3 uniformly with expression (10>3) and (5>3).


2. Predefined functions

Functions of Integer type:
DayOfWeek, Pos, Length, Round, StrToInt.

Functions of Extended and Real type:
Iff, Frac, Int, Exp, Log, Ln, Sin, Cos, ArcSin, ArcCos, Sinh, Cosh, ArcSinh,
ArcCosh, Tan, CoTan, ArcTan, Tanh, ArcTanh, Sqr, Sqrt, Abs, StrToFloat.

Function of Boolean type:
Not, IsLeapYear.

Functions of String type:
LowerCase, AnsiLowerCase, UpperCase, AnsiApperCase, Copy, IntToStr,
FloatToStr, DateTimeToStr, TimeToStr, DateToStr, FormatDateTime.

Functions of DateTime (TDateTime) type:
EncodeDate, EncodeTime, IncMonth, StrToDate, StrToDateTime, StrToTime.

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


3. Error codes and messages

0. No error;
1. Integer type value expected;
2. Extended type value expected;
3. Boolean type value expected;
4. String type value expected;
5. DateTime type value expected;
6. "+", "-", "*", "Div" or "Mod" expected; (for integer type)
7. "+", "-", "*", "/" or "^" expected;     (for Extended and DateTime types)
8. "AND" or "OR" expected;                 (for boolean type)
9. "+" expected;                           (for string type)
10. Comparison sign expected;
11. "(" expected;
12. ")" expected;
13. "," expected;
14. Division by zero;
15. Number of parameter is out of range;
16. Variable name expected;
17. "=" expected;
18. ";" or "." expected;
19. "." expected;
20. "Then" expected;
21. "Else" expected.


4. Installation

Copy the following files in your AdCalc directory

1) AdCReg.pas
2) AdCReg.dcr
3) AdCalc.pas or AdCalc.dcu
4) AdCMsg.pas

This component requires installed components: Dinamic List v1.3 and
Text Reader v2.02, but if You do not require this components separately,
You can only copy the following additional units in your AdCalc directory:

1) DList.pas or DList.dcu;
2) Reader.pas or Reader.dcu.

Then install component AdCalc -
Component / Install Component / Browse / AdCReg.pas / Ok / Compile.

Make sure that path of your AdCalc directory is indicated -
Tools / Environment Options / Library / Library path.


5. What's new

Multilevel If - Then - Else statement.