Set, instruction

Microsoft VBScript

Microsoft® Visual Basic® Scripting Edition Set, instruction Référence du langage 
Version 1 


Description
Affecte une référence d'objet à une variable ou à une propriété ou associe une référence de procédure à un événément.
Syntaxe 1
Set objectvar = {objectexpression | New classname | Nothing}

Syntaxe 2
Set object.eventname = GetRef(procname)

La syntaxe de l'instruction Set comprend les éléments suivants :

Élément Description
objectvar Requis. Nom de la variable ou propriété ; respecte les conventions standard d'affectation de noms à des variables.
objectexpression Facultatif. Expression composée du nom d'un objet, d'une autre variable déclarée du même type d'objet ou d'une fonction ou méthode qui renvoie un objet appartenant au même type d'objet.
New Mot clé utilisé pour créer une nouvelle instance de classe. Si objectvar contient une référence à un objet, celle-ci est ignorée lorsqu'une nouvelle référence est affectée. Le mot clé New est uniquement utilisé pour créer l'instance d'une classe.
classname Facultatif. Nom de la classe en cours de création. Une classe et ses membres sont définis par l'instruction Class.
Nothing Facultatif. Met fin à l'association de l'élément objectvar à un objet ou une classe spécifique. L'affectation à l'élément objectvar de la valeur Nothing libère toutes les ressources système et mémoire associées à l'objet précédemment référencé quand aucun autre élément n'y fait référence.
object Requis. Nom de l'objet avec lequel un événement est associé.
event Requis. Nom de l'événement auquel une fonction va être liée.
procname Requis. Chaîne contenant le nom de la procédure Sub ou Function en cours d'association avec l'événement.

Notes
Pour être valide, objectvar doit être un type d'objet en cohérence avec l'objet qui lui est affecté.

Les instructions Dim, Private, Public ou ReDim ne déclarent qu'une variable faisant référence à un objet. Il n'est fait référence à aucun objet réel avant que vous n'utilisiez l'instruction Set pour affecter un objet spécifique.

En général, quand vous utilisez Set pour affecter une référence d'objet à une variable, aucune copie de l'objet n'est créée pour cette variable. à la place, une référence à l'objet est créée. Plusieurs variables objets peuvent faire référence au même objet. Dans la mesure où ces variables sont des références à l'objet (plutôt que des copies), tout changement apporté à l'objet est répercuté dans toutes les variables y faisant référence.

Function ShowFreeSpace(drvPath)
  Dim fso, d, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set d = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Lecteur " & UCase(drvPath) & " - " 
  s = s & d.VolumeName  & "<BR>"
  s = s & "Espace disponible: " & FormatNumber(d.FreeSpace/1024, 0) 
  s = s & " KOctets"
  ShowFreeSpace = s
End Function
L'utilisation du mot clé New vous permet de créer une instance de classe et de lui affecter une variable de référence à un objet. La variable à laquelle l'instance de la classe est affectée doit être déclarée au préalable avec l'instruction Dim ou une instruction équivalente.

Reportez-vous à la documentation relative à la fonction GetRef pour associer une procédure à un événement au moyen de l'instruction Set.