Page de démarrage > comp > gb > object > attach 
 en de es it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Précédent  Suivant  Éditer  Renommer  Annuler  Rafraîchir  Rechercher  Administration  
Documentation
Historique
 
Object.Attach (gb)
STATIC SUB Attach ( Object AS Object, Parent AS Object, Name AS String )

Attache un objet à son parent.

Name est le nom utilisé pour chercher le gestionnaire d'événement dans l'objet Parent.

Chaque événement déclenché par un objet sera géré par le gestionnaire d'événement situé dans son parent.

Si le parent est une classe, alors les gestionnaires d'événements seront des méthodes statiques de la classe.

Le code suivant :

hObject = NEW MyClass
Object.Attach(hObject, ME, "EventName")

est équivalent à :

hObject = NEW MyClass AS "EventName"

Exemple

PUBLIC Process1 AS Process
...
Process1 = SHELL "find /" FOR READ
Object.Attach(Process1, ME, "Process1")
...

PUBLIC SUB Process1_Read()

   Message.Info("Got output from Process1!")
   ' and then read and do something with the output...

END

L’exemple qui suit créera 16 boîtes d’image et chaque fois que l’une d’entre elle sera cliquée (évènement MouseUp) le bit de donnée sous jacent de iSwtch et l’image sont inversés.

On montre ici comment un tableau d’éléments de contrôle peut recevoir un signal ; dans cet exemple le signal est "MouseUp"

PUBLIC pbSwtch AS Object[16]

PUBLIC iSwtch AS Integer ' L’état des 16 interrupteurs de données

PUBLIC imgSwtchOff AS Picture ' L’image montre un interrupteur quand elle est éteinte
PUBLIC imgSwtchOn AS Picture ' L’image montre un interrupteur quand elle est allumée


PUBLIC SUB Form_Show()

DIM i AS Integer
DIM pb AS Object

imgSwtchOff = Picture["imgSwtchOff.png"]
imgSwtchOn = Picture["imgSwtchOn.png"]

FOR i = 0 TO 15
  pb = NEW PictureBox(ME) ' crée une nouvelle boîte d’image, retourne sa poignée (handle) à pb
  pb.X = 20 + 40 * (15 - i)
  pb.Y = 60
  pb.Width = 32
  pb.Height = 32

  pb.Picture = imgSwtchOff
  pb.Name = "pbSwtch"
  pbSwtch[i] = pb
  Object.Attach(pbSwtch[i], ME, "pbSwtch")
NEXT
END

PUBLIC SUB pbSwtch_MouseUp()
DIM i AS Integer
DIM togglemask AS Integer

i = (Mouse.ScreenX - 20) / 40 ' lequel des 16 interrupteurs à été cliqué ?

IF i >= 0 AND i < 16 THEN
  i = 15 - i
  togglemask = Shl(1, i)
    iSwtch = iSwtch XOR togglemask
  IF iSwtch AND togglemask THEN
    pbSwtch[i].Picture = imgSwtchOn
  ELSE
    pbSwtch[i].Picture = imgSwtchOff
  ENDIF
ENDIF
END