Hilfe für Collabora Office 23.05
Eine Eigenschaft, auch Feld oder Attribut genannt, charakterisiert ein bestimmtes Objekt oder eine bestimmte Information. Eigenschaften können verwendet werden, um den Zugriff auf Daten zu steuern. Es ist üblich, Anweisungen zum Einstellen oder Lesen von Eigenschaften hinzuzufügen. Code kann von einfacher Zuweisung bis hin zu komplexen kontextabhängigen Routinen variieren. Die Verwendung der Accessoren Get, Let oder Set erzwingt bei Bedarf die Konsistenz der Eigenschaften.
Diese Anweisung erfordert, dass Option Compatible vor dem ausführbaren Programmcode in einem Modul platziert wird.
[Private | Public] Property Get name[char | As typename]
End Property
[Private | Public] Property [Let | Set] name[char] [([Optional [ByRef | ByVal]]value[char | As typename])] [As typename]
End Property
name: Der Eigenschaftsname.
argument: Wert, der an die Setter-Routine Property übergeben werden soll.
Property-Setter verwenden oft ein einzelnes Argument. Mehrere Argumente werden gleichermaßen akzeptiert.
Option Compatible
Sub Main
ProductName = "Office"
Print ProductName ' Zeigt "Collabora Office"
End Sub
Private _office As String
Property Get ProductName As String
ProductName = _office
End Property
Property Let ProductName(value As String)
_office = "Libre"& value
End Property
In Abwesenheit von Property Let oder Property Set hilft Property Get dabei, geschützte Informationen zu definieren, die nicht versehentlich von einem fremden Modul geändert werden können:
Option Compatible
Public Property Get PathDelimiter As String ' Schreibgeschützte Variable
Static this As String
If this = "" Then : Select Case GetGuiType()
Case 1 : this = ";" ' Windows
Case 4 : this = ":" ' Linux oder macOS
Case Else : Error 423 ' Eigenschaft oder Methode nicht definiert: PathDelimiter
End Select : End If
PathDelimiter = this
End Property ' Schreibgeschützter PathDelimiter
Sub Main
PathDelimiter = "a sentence" ' Nichts passiert
End Sub
Verwenden Sie Let oder Set beim Umgang mit UNO-Diensten oder Klassenobjekten:
Option Compatible
Sub Main
'Set anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
Print anObject.SupportedServiceNames(0) ' displays "com.sun.star.frame.Frame"
End Sub
Property Get anObject As Object
Set anObject = _obj
End Property
Private _obj As Object
'Property Set anObject(value As Object)
'Set _obj = value.CurrentFrame
'End Property
Property Let anObject(value As Object)
Set _obj = value.CurrentFrame
End Property