Collabora Office 24.04 Hjælp
En egenskab, også kaldet felt eller attribut, kendetegner et givet objekt eller en information. Egenskaber kan bruges til at kontrollere tilgang til data. Det er almindelig brug at medtage instruktioner ved egenskabernes sætte- eller læsetidspunkt. Kode kan variere fra simpel tildeling til komplekse kontekstafhængige rutiner. Med accessorerne Get, Let eller Set forstærkes egenskabernes konsistens om nødvendigt.
Dette udtryk kræver, at Option Compatible er placeret foran den eksekverbare programkode i et modul.
[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: Egenskabens navn.
argument: værdi, der skal overføres til sætte-rutinen Property.
Property-sættere bruger ofte et enkelt argument. Flere argumenter accepteres ligeledes.
Option Compatible
Sub Main
ProductName = "Office"
Print ProductName ' viser "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
I fravær af egenskaben Let eller egenskaben Set, hjælper egenskaben Get med at definere beskyttet information, som kan ændres tilfældigt af et fremmed modul:
Option Compatible
Public Property Get PathDelimiter As String ' Skrivebeskyttet variabel
Static this As String
If this = "" Then : Select Case GetGuiType()
Case 1 : this = ";" ' Windows
Case 4 : this = ":" ' Linux eller macOS
Case Else : Error 423 ' Egenskab eller metode ikke defineret: PathDelimiter
End Select : End If
PathDelimiter = this
End Property ' skrivebeskyttet PathDelimiter
Sub Main
PathDelimiter = "a sentence" ' gør intet
End Sub
Brug Let eller Set, når du håndterer UNO-tjenester eller klasseobjekter:
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