[résolu]Interface (exemple doc pb)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

[résolu]Interface (exemple doc pb)

Message par blendman »

salut

J'ai voulu regarder les interfaces, mais l'exemple proposé est incomplet dans la documentation.

Code : Tout sélectionner

Interface MonObjet  
  Create()
  MoveObj(x,y)  
  Destroy()
EndInterface

Structure PGC_Ob
  *Functions.MonObjet
  x.w
  y.w 
EndStructure


Procedure MoveObj(*this.PGC_Ob,xx,yy)
  *this\x = xx
  *this\y = yy
  Debug "move"
EndProcedure
Procedure Create(*this.PGC_Ob)  
  Debug "create"
EndProcedure
Procedure Destroy(*this.PGC_Ob)
  Debug "ben paf"
EndProcedure
Procedure Free(*this.PGC_Ob); destructeur
  FreeMemory(*this)
EndProcedure


Procedure CreationObjet(); constructeur
  *obj.PGC_Ob = AllocateMemory(SizeOf(PGC_Ob))
  *obj\Functions = ?Functions
  *obj\x = 0
  Debug "creation obj"
  ProcedureReturn *obj
EndProcedure


;
Objet1.MonObjet = CreationObjet()
Objet2.MonObjet = CreationObjet()


Objet1\MoveObj(10, 20)
Objet1\Destroy()

Objet2\Create()
Objet2\MoveObj(5, 2)
Objet2\Destroy()

DataSection
  Functions:
    Data.l @MoveObj(), @Destroy()
    Data.l @Create(), @Free() ;<-- on peut les placer sur plusieurs lignes
EndDataSection
Que dois-je faire dans ce code pour que ça fonctionne ? (je n'ai pas trouvé d'exemple simple sur les interfaces)

merci :)

[Edition] : bon, ben, j'ai trouvé, mais ce n'est pas forcément simple, même si c'est intéressant ^^.
J'ai édité le code