LibreOffice SymbolLibreOffice Symbol

Necessitamos da sua ajuda!

Declaração de Propriedade

Uma propriedade, também designada por campo ou atributo, caracteriza um determinado objeto ou elemento de informação. As propriedades podem ser utilizadas para controlar o acesso aos dados. É prática comum incluir instruções no momento da definição ou da leitura das propriedades. O código pode variar desde uma simples atribuição até rotinas complexas dependentes do contexto. A utilização dos acessores Get, Let ou Set garante a consistência das propriedades quando necessário.

Ícone de aviso

Esta instrução requer que Option Compatible seja colocado antes do código executável de um módulo.


Sintaxe:

Diagrama da instrução Property Get


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

Diagrama da instrução «Property Set»


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

Parâmetros:

nome: O nome da propriedade.

argumento: Valor a ser passado à rotina setter da Propriedade.

Ícone de nota

Os setters da propriedade utilizam frequentemente um único argumento. São igualmente aceites vários argumentos.


<variável id="argumenth2">fragmento de argumento</variável>

fragmento de argumento


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

Opcional: O argumento não é obrigatório.

ByRef: O argumento é passado por referência. ByRef é o valor predefinido.

ByVal: O argumento é passado por valor. O seu valor pode ser alterado pela rotina chamada.

char: Carácter de declaração de tipo.

typename: Nome do tipo de dados primitivo. Também é possível especificar tipos definidos por bibliotecas ou módulos.

= expressão: Especifique um valor por defeito para o argumento, de acordo com o seu tipo declarado. Opcional é necessário para cada argumento ao especificar um valor por defeito.

ParamArray: Utilize ParamArray quando o número de parâmetros for indeterminado. Um cenário típico é o de uma função definida pelo utilizador no Calc. A utilização de ParamArray deve limitar-se ao último argumento de uma rotina.

Ícone da dica

A utilização de ParamArray ou = expressão requer que a Opção Compatible seja colocada antes do código executável do programa num módulo.


Ícone de aviso

Ao utilizar Option VBASupport 1, os argumentos Opcionais sem valor predefinido (= expressão) são inicializados de acordo com o seu tipo de dados, exceto se forem do tipo Variant.


fragmento typename

fragmento de tipos de dados primitivos


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
fragmento de caractere

caracteres de declaração de tipo


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

Exemplos


      Option Compatible
      Sub Main
          ProductName = "Office"
          Print ProductName ' apresenta "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
      
Ícone da dica

Na ausência das propriedades Let ou Set, a propriedade Get ajuda a definir informações protegidas, que não podem ser alteradas acidentalmente por um módulo externo:



      Option Compatible
      Propriedade pública Get PathDelimiter As String ' Variável de leitura apenas
          Static this As String
          If this = "" Then : Select Case GetGuiType()
              Case 1 : this = ";" ' Windows
              Caso 4: this = ":" ' Linux ou macOS
              Caso Else: Erro 423 «Propriedade ou método não definido: PathDelimiter»
          End Select : End If
          PathDelimiter = this
      Fim da propriedade «PathDelimiter» de leitura apenas
      
      Sub Main
          PathDelimiter = "uma frase" ' não faz nada
      End Sub
      
Ícone de nota

Utilize Let ou Set ao lidar com serviços ou objetos de classe da 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