LibreOffice 25.2 žinynas
Savybė, dar vadinama lauku arba atributu, apibūdina nurodytą objektą ar informacijos dalį. Savybės gali būti naudojamos prieigai prie duomenų valdyti. Paprastai naudojamas nurodymas nustatant ar skaitant savybių laiką. Kodas gali skirtis nuo paprasto priskyrimo iki sudėtingų, nuo konteksto priklausomų, paprogramių. Naudodamiesi Get, Let arba Set prieigomis, jei reikia, užtikrinamas savybių nuoseklumas.
Šiam sakiniui reikia Parinčių suderinamumo, kuris turi būti modulyje prieš vykdomą programos kodą.
[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: Savybės pavadinimas.
argument: Reikšmė, kuri perduodama savybės paprogramei.
Property naudoja dažniausiai vieną argumentą. Daugybiniai argumentai taip pat galimi.
Option Compatible
Sub Main
ProductName = "Office"
Print ProductName ' rodoma "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
Jei nėra savybės Let arba savybės Set, savybė Get padeda aprašyti laikomą informaciją, kurios svetimas modulis negali netyčia pakeisti:
Option Compatible
Viešoji savybė „PathDelimiter As String“ tik skaitymui kintamasis
Static this As String
If this = "" Then : Select Case GetGuiType()
Case 1 : this = ";" ' Windows
Case 4 : this = ":" ' Linux arba macOS
Case Else : Error 423 ' Savybė arba metodas neapibrėžtas: PathDelimiter
End Select : End If
PathDelimiter = this
End Property ' tik skaityti PathDelimiter
Sub Main
PathDelimiter = "sakinys" ' nieko nedaro
End Sub
Naudokite Let arba Set, kai apdorojate UNO paslaugas arba klasių objektus:
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