LibreOfficeDev 25.8 Hjelp
En egenskap, også kalt felt eller attributt, karakteriserer et gitt objekt eller informasjon. Egenskaper kan brukes til å kontrollere tilgang til data. Det er vanlig bruk å inkludere instruksjoner ved innstilling eller lesingstid for egenskaper. Kode kan variere fra enkel tildeling til komplekse kontekstavhengige rutiner. Ved å bruke Get-, Let- eller Set-tilgangselementer fremtvinges egenskapenes konsistens når det er nødvendig.
Dette uttrykke krever at Option Compatible plasseres foran den kjørbare programkoden i en 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: Egenskapsnavnet.
argument: Verdi som skal overføres til Property-Sett rutinen.
Egenskaps-innstillere bruker ofte et enkelt argument. Flere argumenter aksepteres likt.
      Option Compatible
      Sub Main
          ProductName = "Office"
          Print ProductName ' viser "LibreOfficeDev"
      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 av Property Let eller Property Set, hjelper Property Get med å definere beskyttet informasjon, som ikke ved et uhell kan endres av en utenforstående modul:
      Option Compatible
      Offentlig eiendom Få 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: Feil 423 ' Egenskap eller metode ikke definert: PathDelimiter
          End Select : End If
          PathDelimiter = this
      End Property ' skrivebeskyttet PathDelimiter
      
      Sub Main
          PathDelimiter = "en setning" ' gjør ingenting
      End Sub
      Bruk 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