Ayuda de LibreOffice 24.8
Una propiedad, también conocida como campo o atributo, caracteriza un objeto o una información en concreto. Se pueden utilizar las propiedades para controlar el acceso a los datos. Es habitual incluir instrucciones al definir o leer las propiedades. El código puede variar de una sencila asignación a rutinas complejas dependientes del contexto. El uso de los descriptores de acceso Get, Let y Set permiten aplicar coherencia en las propiedades si fuese necesario.
Esta instrucción requiere la utilización de Option Compatible antes del código del programa en un módulo.
[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
nombre: el nombre de la propiedad.
argumento: el valor que se transmitirá a la rutina establecedora Property.
Los establecedores Property a menudo utilizan un único argumento. También se aceptan argumentos múltiples.
Option Compatible
Sub Main
ProductName = "Office"
Print ProductName ' muestra «LibreOffice»
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 the absence of Property Let or Property Set, Property Get helps define protected information, which can not be accidently altered by a foreign module:
Option Compatible
Public Property Get PathDelimiter As String ' variable de solo lectura
Static this As String
If this = "" Then : Select Case GetGuiType()
Case 1 : this = ";" ' Windows
Case 4 : this = ":" ' Linux o macOS
Case Else : Error 423 ' Property or method not defined: PathDelimiter
End Select : End If
PathDelimiter = this
End Property ' PathDelimiter de solo lectura
Sub Main
PathDelimiter = "un enunciado" ' no hace nada
End Sub
Use Let or Set when handling UNO services or class objects:
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