public class Cube : FarPoint.CalcEngine.FunctionInfo
{
public override string Name
{
get
{
return "Cube";
}
}
public override int MaxArgs
{
get
{
return 1;
}
}
public override int MinArgs
{
get
{
return 1;
}
}
public override bool AcceptsReference(int i)
{
if (i == 0)
{
return true;
}
else
{
return false;
}
}
public override object Evaluate(object[] args)
{
double total;
FarPoint.CalcEngine.CalcReference cellref;
object value;
if (args[0] is FarPoint.CalcEngine.CalcArray)
{
return FarPoint.CalcEngine.CalcError.Value;
}
if (args[0] is FarPoint.CalcEngine.CalcReference)
{
cellref = ((FarPoint.CalcEngine.CalcReference)(args[0]));
if (cellref.ColumnCount > 1 | cellref.RowCount > 1)
{
return FarPoint.CalcEngine.CalcError.Value;
}
value = cellref.GetValue(cellref.Row, cellref.Column);
try
{
total = Math.Pow(FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]), 3);
}
catch
{
}
}
else
{
try
{
total = Math.Pow(FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]), 3);
}
catch
{
}
}
return total;
}
}
Public Class Cube
Inherits FarPoint.CalcEngine.FunctionInfo
Public Overrides ReadOnly Property Name() As String
Get
Return "Cube"
End Get
End Property
Public Overrides ReadOnly Property MaxArgs() As Integer
Get
Return 1
End Get
End Property
Public Overrides ReadOnly Property MinArgs() As Integer
Get
Return 1
End Get
End Property
Public Overrides Function AcceptsReference(ByVal i As Integer) As Boolean
If i = 0 Then
Return True
Else
Return False
End If
End Function
Public Overrides Function Evaluate(ByVal args() As Object) As Object
Dim total As Double
Dim cellref As FarPoint.CalcEngine.CalcReference
Dim value As Object
If TypeOf args(0) Is FarPoint.CalcEngine.CalcArray Then Return FarPoint.CalcEngine.CalcError.Value
If TypeOf args(0) Is FarPoint.CalcEngine.CalcReference Then
cellref = CType(args(0), FarPoint.CalcEngine.CalcReference)
If cellref.ColumnCount > 1 Or cellref.RowCount > 1 Then Return FarPoint.CalcEngine.CalcError.Value
value = cellref.GetValue(cellref.Row, cellref.Column)
Try
total = FarPoint.CalcEngine.CalcConvert.ToDouble(value) ^ 3
Catch
End Try
Else
Try
total = FarPoint.CalcEngine.CalcConvert.ToDouble(args(0)) ^ 3
Catch
End Try
End If
Return total
End Function
End Class