Eigene Funktionen dem Formelassistent hinzufügen

Eine der wichtigsten und mächtigsten Möglichkeiten des Designers sind der Formelassistent und die dort angebotenen Funktionen. Mit Hilfe einer speziellen List & Label-Komponente für das OCX ist es zudem möglich, ganz individuelle Funktionen in den Designer einzubinden. Um das Control verwenden zu können, müssen Sie die Datei cmll30fx.ocx in Ihre IDE einbinden.

Zum Hinzufügen einer neuen Funktion fügen Sie zur Designzeit diese Komponente auf einem Formular ein. Im Eigenschaftsfenster dieser Komponente können Sie nun die notwendigen Parameter einstellen.

Eigenschaft

Beschreibung

Name

Der eindeutige Name der Designerfunktion

Description

Eine zusätzliche Beschreibung der Funktion für den Formelassistenten

GroupName

Die Gruppe in der die Funktion im Formelassistenten angezeigt wird

Visible

Gibt an, ob die Funktion im Assistenten angezeigt wird oder nicht

MinimumParameters

Die minimale Anzahl von Parametern. Gültig sind Werte zwischen 0 und 4.

MaximumParameters

Die maximale Anzahl von Parametern. Gültig sind auch hier Werte zwischen 0 und 4. Der Wert muss gleich oder größer der minimalen Anzahl sein. Eine größere Anzahl ergibt optionale Parameter.

ResultType

Der Datentyp des Rückgabewerts

 

Mit Hilfe der Eigenschaften können Sie die neue Designerfunktion individuell einstellen. Die Parameter für die Designerfunktionen werden im Quellcode festgelegt. Dies kann wie folgt aussehen:

Visual Basic:

Private Sub InitializeDesFunction()

       Dim param1 As DesignerFunctionsParameter
       Dim param2 As DesignerFunctionsParameter
      
       Set param1 = DesFunc_Add.Parameter1
       param1.Description = "First Value"
       param1.Type = LlParamType.ParamType_Double
      
       Set param2 = DesFunc_Add.Parameter2
       param2.Description = "Second Value"
       param2.Type = LlParamType.ParamType_Double
      
       DesFunc_Add.ParentComponent = ListLabel1
End Sub

Um die Funktion schließlich zum Leben zu erwecken, müssen Sie das Ereignis DesFunc_Add_EvaluateFunction behandeln. Über die Ereignisargumente erhalten Sie Zugriff auf die vom Benutzer eingegebenen Parameter. Um beispielsweise die Summe der beiden Parameter zurück zu liefern, verwenden Sie folgende Zeilen:

Visual Basic:

Private Sub DesFunc_Add_EvaluateFunction(ResultValue As Variant,
                ResultType As CMLL30FXLibCtl.LlParamType,
                DecimalPositions As Long,
                ByVal Parameters As Long, ByVal Parameter1 As Variant,
                ByVal Parameter2 As Variant, ByVal Parameter3 As Variant,
                ByVal Parameter4 As Variant)

       ResultValue = CDbl(Parameter1) + CDbl(Parameter2)
       ResultType = ParamType_Double

End Sub

Zwei weitere Ereignisse erlauben Ihnen optional eine weitergehende Anpassung der Funktion. Über DesFunc_Add_CheckFunctionSyntax können Sie eine Syntaxprüfung vornehmen. Hier können Sie die Datentypen der Parameter überprüfen und beispielsweise sicherstellen, dass die Parameter in einem bestimmten Bereich liegen. Über DesFunc_Add_ParameterAutoComplete ist es möglich, verschiedene Vorschlagswerte für das AutoComplete-Feature des Formelassistenten vorzugeben.