ການຊ່ວຍເຫຼືອ LibreOffice 26.2
Property (ຄຸນສົມບັດ), ເຊິ່ງບາງຄັ້ງເອີ້ນວ່າ field ຫຼື attribute, ໃຊ້ເພື່ອລະບຸລັກສະນະຂອງອັອບເຈັກ ຫຼື ຂໍ້ມູນ. Property ສາມາດໃຊ້ເພື່ອຄວບຄຸມການເຂົ້າເຖິງຂໍ້ມູນ. ເປັນເລື່ອງປົກກະຕິທີ່ຈະລວມເອົາຄຳສັ່ງຕ່າງໆໃນເວລາທີ່ຕັ້ງຄ່າ ຫຼື ອ່ານ Property. ລະຫັດສາມາດມີຕັ້ງແຕ່ການກຳນົດຄ່າງ່າຍໆ ໄປຈົນເຖິງຣູທີນທີ່ຊັບຊ້ອນຕາມສະພາບການ. ການໃຊ້ Get, Let ຫຼື Set ຊ່ວຍຮັກສາຄວາມສອດຄ່ອງຂອງ Property ເມື່ອຈຳເປັນ.
ຄຳສັ່ງນີ້ຈຳເປັນຕ້ອງມີ Option Compatible ວາງໄວ້ກ່ອນລະຫັດໂປຣແກຣມໃນໂມດູນ.
[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: ຊື່ຂອງ Property.
argument: ຄ່າທີ່ຈະສົ່ງໄປຍັງຣູທີນກຳນົດຄ່າ (setter) ຂອງ Property.
ຣູທີນກຳນົດຄ່າ (setters) ຂອງ Property ມັກຈະໃຊ້ອາກິວເມັນດຽວ. ການໃຊ້ຫຼາຍອາກິວເມັນກໍສາມາດເຮັດໄດ້ເຊັ່ນກັນ.
Option Compatible
Sub Main
ProductName = "Office"
Print ProductName ' ສະແດງຜົນ "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
ໃນກໍລະນີທີ່ບໍ່ມີ Property Let ຫຼື Property Set, Property Get ຈະຊ່ວຍກຳນົດຂໍ້ມູນທີ່ຖືກປ້ອງກັນ ເຊິ່ງບໍ່ສາມາດຖືກແກ້ໄຂໂດຍບັງເອີນຈາກໂມດູນອື່ນໄດ້:
Option Compatible
Public Property Get PathDelimiter As String ' ຕົວປ່ຽນແບບອ່ານຢ່າງດຽວ
Static this As String
If this = "" Then : Select Case GetGuiType()
Case 1 : this = ";" ' Windows
Case 4 : this = ":" ' Linux ຫຼື macOS
Case Else : Error 423 ' Property ຫຼື ເມທອດບໍ່ໄດ້ຖືກກຳນົດ: PathDelimiter
End Select : End If
PathDelimiter = this
End Property ' PathDelimiter ແບບອ່ານຢ່າງດຽວ
Sub Main
PathDelimiter = "a sentence" ' ບໍ່ມີຜົນຫຍັງ
End Sub
ໃຊ້ Let ຫຼື Set ເມື່ອຈັດການກັບບໍລິການ UNO ຫຼື ອັອບເຈັກຂອງຄລາສ:
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