Gambas Documentation
Aperçu du Langage
Assign
Boucle d'évènements
Chemins de Fichiers & Répertoires
Classes de conteneur natives
Constantes du langage
Constantes prédéfinies
Déclaration d'énumération
Déclaration d'évènement
Déclaration de constante
Déclaration de méthode
Déclaration de propriété
Déclaration de structure
Déclaration de tableau
Déclaration de variable locale
Déclaration de variables
Entiers
Expressions
Fonctions arithmétiques
Fonctions associées aux fichiers et dossiers
Fonctions de chaîne de caractères
Fonctions de conversion
Fonctions de date et de temps
Fonctions de flux et d'entrée/sortie
Fonctions de formatage
Fonctions de Localisation et Traduction
Fonctions de manipulation de bits
Fonctions de nombres aléatoires
Fonctions de test des caractères
Fonctions de type de données
Fonctions diverses
Fonctions et structures de contrôle
Fonctions intrinsèques
Fonctions logarithmiques et exponentielles
Fonctions trigonométriques
Formats définis par l'utilisateur
Gestion d'erreurs
Gestion des événements
Gestion des fonctions externes
Gestion des objets et des classes
Gestion des processus
Gestionnaires d'évènements globaux
Le modèle objet de Gambas
Méthodes de comparaison
Méthodes spéciales
Nombres
Nombres flottants
Opérateurs arithmétiques
Opérateurs d'affectation
Opérateurs de chaînes de caractères
Opérateurs logiques
Ordre d'évaluation des opérateurs
Représentation binaire des données
Structures de contrôle de boucles
Structures de contrôle diverses
Syntaxe des modes de fichier
Tableaux natifs
Tracés
Types de données
Utilisation des mots réservés comme identificateur
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

Déclaration de propriété

PROPERTY [ READ ] Identificateur AS TypeDeDonnée

Déclare une propriété de classe.

Si le mot-clé READ est spécifié, alors la propriété sera en lecture seule.

Une fois déclarée, la propriété doit être mise en oeuvre : vous devez écrire une fonction pour lire la propriété et, si elle n'est pas en lecture seule, une fonction pour écrire la propriété.

Le nom de la fonction de lecture est formé du nom de la propriété suivi d'un caractère de soulignement et du mot Read. Cette fonction ne prend pas d'argument et doit renvoyer une donnée dont le type est le même que celui de la propriété.

Le nom de la fonction d'écriture est formé du nom de la propriété suivi d'un caractère de soulignement et du mot Write. Cette fonction est une procédure qui ne renvoie rien et qui ne prend qu'un seul argument dont le type est le même que celui de la propriété.

Exemple

PROPERTY Enabled AS Boolean
PROPERTY READ Handle AS Integer
...
    
PRIVATE $bEnabled AS Boolean
PRIVATE $iHandle AS Integer
    
' Implémente la propriété Enabled
    
FUNCTION Enabled_Read() AS Boolean
   
  RETURN $bEnabled
    
END
    
SUB Enabled_Write(bEnabled AS Boolean)
    
  $bEnabled = bEnabled
  UpdateEverything
    
END
    
' Implémente la propriété Handle
   
FUNCTION Handle_Read() AS Integer
    
  RETURN $iHandle
   
END

Synonymes de propriété

PROPERTY [ READ ] Identifier [ , Synonyme1 [ , Synonyme2 ... ] ] AS TypeDeDonnée

Depuis 3.1

C'est possible de déclarer jusqu'à trois synonymes des propriétés déclarées en utilisant la seconde syntaxe.

Raccourci de propriété

PROPERTY [ READ ] Identificateur AS TypeDeDonnée USE Variable

Depuis 3.14

Cette syntaxe déclare Variable, une variable privée globale, qui sera utilisée pour implémenter la propriété Identificateur.

Property Name As String Use $sName
est l'équivalent exact de :
Property Name As String
Private $sName As String

Private Sub Name_Read() As String
  Return $sName
End

Private Sub Name_Write(Value As String)
  $sName = Value
End

Si besoin, vous pouvez ignorer Read ou Write ou les deux méthodes de propriété par défaut :

Property Name As String Use $sName

Private Sub Name_Write(Value As String)

  If Not Value Then Error.Raise("Nom incorrect")
  $sName = Value

End

Voir aussi