102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
|
---------------------------------------
|
||
|
OLE Automation Sample Program: Dispcalc
|
||
|
---------------------------------------
|
||
|
|
||
|
DspCalc2 is a simple accumulator-based calculator. Its
|
||
|
user interface consists of buttons for the numbers (0-9),
|
||
|
the operators (+, -, *, /), and some other necessary
|
||
|
buttons (C for Clear, = for evaluation). Its programmability
|
||
|
interface consists of one object, which is described below.
|
||
|
|
||
|
The ProgID for dspcalc2's only object is "DspCalc2.Application".
|
||
|
An instance of this object can be created by executing the
|
||
|
following lines of code in Visual Basic or DispTest:
|
||
|
|
||
|
Sub Foo
|
||
|
Dim MyCalculator as Object
|
||
|
|
||
|
Set MyCalculator = CreateObject("DspCalc2.Application")
|
||
|
. . .
|
||
|
End Sub
|
||
|
|
||
|
|
||
|
-----------------
|
||
|
Program Structure
|
||
|
-----------------
|
||
|
DspCalc2 uses a type library and CreateStdDispatch in order to
|
||
|
implement the IDispatch interface.
|
||
|
|
||
|
|
||
|
|
||
|
-------------------------
|
||
|
Properties for the object
|
||
|
-------------------------
|
||
|
|
||
|
|
||
|
Name Type Description
|
||
|
---------------------------
|
||
|
Value VT_I4 Same as the value for the accumulator.
|
||
|
|
||
|
Accum VT_I4 The value that is in the accumulator of the
|
||
|
calculator.
|
||
|
|
||
|
Opnd VT_I4 The operand. This is the number which is
|
||
|
currently being entered.
|
||
|
|
||
|
Op VT_I2 The operator that is currently being used.
|
||
|
This is an enumeration:
|
||
|
const OP_NONE = 0
|
||
|
const OP_PLUS = 1
|
||
|
const OP_MINUS = 2
|
||
|
const OP_MULT = 3
|
||
|
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Methods defined on the object
|
||
|
-----------------------------
|
||
|
|
||
|
|
||
|
Name Description
|
||
|
---------------------------
|
||
|
Eval() as Boolean If there is an operator, apply it to
|
||
|
accumulator and the operand, placing the
|
||
|
result in the accumulator.
|
||
|
|
||
|
The return value indicates success or
|
||
|
failure.
|
||
|
|
||
|
Clear() Resets the calculator. This sets
|
||
|
Op to OP_NONE, and both Accum and
|
||
|
Opnd to 0.
|
||
|
Display() Updates the display of the calculator.
|
||
|
(Other operations do not do this.)
|
||
|
|
||
|
Quit() Close the calculator.
|
||
|
|
||
|
Button(b as string) as Boolean
|
||
|
Press the indicated button and return
|
||
|
success or failure.
|
||
|
|
||
|
Valid string values are:
|
||
|
+, -, *, +
|
||
|
0-9
|
||
|
c, C
|
||
|
=
|
||
|
|
||
|
Note that you may also pass the numbers
|
||
|
0-9 and these will be converted to strings
|
||
|
automatically.
|
||
|
|
||
|
|
||
|
|
||
|
---------------------------
|
||
|
Shortcomings of this sample
|
||
|
---------------------------
|
||
|
1. Property and method names should not be abbreviated.
|
||
|
For example, the "Opnd" property should be the "Operand"
|
||
|
property.
|
||
|
|
||
|
2. Since the object is the application object, it should
|
||
|
have Name and Version properties, which are read-only.
|