Property instrukzioa

Propietate batek (eremu edo atributu ere deitua) objektu bat edo informazio-zati bat karakterizatzen du. Propietateak datuen atzitzea kontrolatzeko erabili daitezke. Normala da haiek instrukzioak sartzea propietateak ezartzeko edo irakurtzeko unean. Kodea mota askotakoa izan daiteke, esleipen sinpleetatik testuinguruaren araberako errutina konplexuetaraino. Get, Let eta Set atzigailuek propietateen koherentzia behartzen dute, beharrrezkoa denean.

warning

Instrukzio honek behar du modulu bateko programa-kode exekutagarriaren aurrean Option Compatible kokatzea.


Sintaxia:

Property Get instrukzioaren diagrama

[Private | Public] Property Get name[char | As typename]
End Property

Property Set instrukzioaren diagrama

[Private | Public] Property [Let | Set] name[char] [([Optional [ByRef | ByVal]]value[char | As typename])] [As typename]
End Property

Parametroak:

name: Propietatearen izena.

argument: Property ezarle-errutinari pasatuko zaion balioa.

note

Property ezarleek sarritan argumentu bakarra darabilte. Argumentu anitz ere onartzen dira.


argumentu-zatia

argumentu-zatia

{[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
Parametroak

Optional: Argumentua ez da derrigorrezkoa.

ByRef: Argumentua erreferentzia gisa pasatzen da. ByRef da aukera lehenetsia.

ByVal: Argumentua balio gisa pasatzen da. Balio hori deitutako errutinak soilik aldatu dezake.

char: Mota deklaratzeko karakterea.

motaizena: Jatorrizko datu-moten izena. Liburutegiekin edo moduluekin definitutako motak ere zehaztu daitezke.

= expression: Zehaztu balio lehenetsi bat argumenturako. Deklaratutako motarekin bat egin behar dy. Optional erabiltzea beharrezkoa da balio lehenetsi bat zehazten duen argumentu bakoitzerako.

ParamArray: Erabili ParamArray parametro kopurua zehaztu gabe dagoenean. Egoera tipiko bat erabiltzaileak definitutako Calc funtzioak dira. ParamArray erabiltzea errutina baten azken argumentura mugatu beharko litzateke.

tip

ParamArray edo = expression erabiltzeko, Option Compatible kokatu behar da moduluaren programa-kode exekutagarriaren aurrean.


warning

Option VBASupport 1 erabiltzean, balio lehenetsirik gabeko (= expression) Optional argumentuak beren datu motaren arabera hasieratzen dira, Variant kasuan salbu.


motaizena zatia

jatorrizko datu moten zatia

{Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
karaktere-zatia

mota deklaratzeko karaktereak

{ % | & | ! | # | $ | @ }

Adibideak

Option Compatible
Sub Main
    ProductName = "Office"
    Print ProductName ' «Collabora Office» bistaratzen du
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
tip

Property Let edo Property Set falta bada, Property Get atzigailuak informazio babestua, kanpoko modulu batek nahi gabe aldatu behar ez duena, definitzen laguntzen du:


Option Compatible
Public Property Get PathDelimiter As String ' Irakurtzeko soilik den aldagaia
    Static this As String
    If this = "" Then : Select Case GetGuiType()
        Case 1 : this = ";" ' Windows
        Case 4 : this = ":" ' Linux edo macOS
        Case Else : Error 423 ' Propietatea edo metodoa ez dago definituta: PathDelimiter
    End Select : End If
    PathDelimiter = this
End Property ' irakurtzeko soilik den PathDelimiter

Sub Main
    PathDelimiter = "esaldi bat" ' ez du ezer egiten
End Sub
note

Erabili Let edo Set UNO zerbitzuak edo klase-objektuak maneiatzean:


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

Emaguzu laguntza!