voila j'aimerai savoir comment définir les méthodes déclarées dans une "interface" , j'ai regarder le fichier aide mais ça me parait bien vague !
si quelqu'un peux m'éclairer sur le sujet çe serai sympa merci !

Code : Tout sélectionner
;/---------------------------------------------------
;- DECLARATION DES METHODES DE L'OBJET
;/---------------------------------------------------
Interface Poule
Picorer()
Pondre ( Nom.s )
Chanter( Message.s )
EndInterface
Structure Poule_TableVirtuelle
Picorer.l
Pondre.l
Chanter.l
EndStructure
;/---------------------------------------------------
;- DECLARATION DES ATTRIBUTS DE L'OBJET
;/---------------------------------------------------
Structure Poule_Structure
*TableVirtuelle.Poule_TableVirtuelle ; Indispensable
Nom.s
Couleur.s
NombreOeufs.l
EndStructure
;/---------------------------------------------------
;- DECLARATION DES PROCEDURES DE L'OBJET
;/---------------------------------------------------
Declare CreerPoule( Parametres.s )
Declare Picorer ( *Self.Poule_Structure )
Declare Pondre ( *Self.Poule_Structure, Parametre.s )
Declare Chanter ( *Self.Poule_Structure, Message.s )
;/---------------------------------------------------
;- DEFINITION DES METHODES DE L'OBJET
;/---------------------------------------------------
Procedure Picorer( *Self.Poule_Structure )
Debug *Self\Nom + " vient de picorer"
EndProcedure
Procedure Pondre( *Self.Poule_Structure, Parametres.s )
*Self\NombreOeufs + 1
Debug *Self\Nom + " vient de pondre"
ProcedureReturn CreerPoule( Parametres )
EndProcedure
Procedure Chanter( *Self.Poule_Structure, Message.s )
Debug PeekS(*Self\Nom) + " chante " + Message
EndProcedure
;/---------------------------------------------------
;- ATTACHEMENT DES METHODES A L'OBJET
;/---------------------------------------------------
Global Poule_Global.Poule_TableVirtuelle
Poule_Global\Picorer = @Picorer()
Poule_Global\Pondre = @Pondre()
Poule_Global\Chanter = @Chanter()
;/---------------------------------------------------
;- CREATION D UNE LISTE CONTENANT LES OBJETS
;/---------------------------------------------------
NewList Instances.Poule_Structure()
;/---------------------------------------------------
;- DEFINITION DU CONSTRUCTEUR : CREATION D'UN OBJET
;/---------------------------------------------------
Procedure.l CreerPoule( Parametres.s )
Nom.s = StringField( Parametres, 1, ";" )
Couleur.s = StringField( Parametres, 2, ";" )
AddElement(Instances())
Instances()\TableVirtuelle = Poule_Global
Instances()\Nom = Nom
Instances()\Couleur = Couleur
Instances()\NombreOeufs = 0
Debug Nom + " vient de naitre. Ho ! elle est " + Couleur
ProcedureReturn @Instances()
EndProcedure
;/---------------------------------------------------
;- PROGRAMME PRINCIPAL
;/---------------------------------------------------
Poule1.Poule = CreerPoule("Poule De Basse Cours;Marron")
Poule2.Poule = CreerPoule( "Poule De Luxe;Jaune" )
Debug "---"
Poule1\Picorer()
Poule1\Picorer()
Poule1\Picorer()
Poule3.Poule = Poule1\Pondre( "Poulette;Noire" )
Poule4.Poule = Poule1\Pondre( "Poussin;Bleu" )
Debug "---"
Poule2\Picorer()
Poule2\Chanter("Cocoricooo")
Poule2\Picorer()
Poule2\Chanter("Cocorico")
Debug "---"
Poule3\Picorer()
Poule3\Chanter("CuiCui")
Debug "---"
ForEach Instances()
Debug Instances()\Nom + " a donc pondu "+Str(Instances()\NombreOeufs) + " oeufs"
Next
Debug "---"
ForEach Instances()
x.Poule=Instances()
x\Chanter("Au revoir")
Next
Debug "---"
Debug "Fin"
End
Code : Tout sélectionner
Interface MyObject
Move(x,y)
MoveF(x.f,y.f)
Destroy()
EndInterface
Non, c'est des objets COM (Component Object Model), l'OLE c'est la capacité à intégrer dans son application l'interface d'une autre (Excel, Word dans un prog VB par exemple).nico a écrit :L' avantage des interfaces window (Objet ole), c'est que n'importe qu'elle programme peut utiliser les fonctions de l'interface et profiter de ses avantages.Mais créer ses interfaces va servir à quoi, quel intéret il y a ?
Les Interfaces sont utilisées pour accéder facilement aux modules 'Orientés Objets' tels que les bibliothèques COM (Component Object Model) ou DirectX. Ce type de bibliothèques sont de plus en plus courantes sous Windows et les interfaces permettent une exploitation de ces fonctions sans impacts de performances. Les interfaces jettent aussi les bases pour une 'Programmation Orientée Object' (OOP en anglais) avec PureBasic mais nécessite de solides connaissances pour en tirer parti (les interfaces n'ont pas été concu pour ajouter une couche objet à PureBasic mais plutot pour accéder facilement à des objets dejà concus). La plupart des interfaces utilisées sous Windows sont déjà incluses dans les fichiers residents 'Interfaces.res' et 'InterfaceDX.res', ce qui rend leur utilisation immédiate.
Le paramètre optionnel Extends permet d'etendre une interface sans avoir a dupliquer ses fonctions (ces 'fonctions' sont aussi communément appelées 'méthodes' des les autres langages objet tel que C++ ou Java). Toutes les fonctions contenues dans l'interface etendue seront disponibles dans la nouvelle interface. C'est utile pour un heritage simple d'objets.
La commande SizeOf peut etre utilisée avec les interfaces pour déterminer la taille d'une interface et la commande OffsetOf peut etre utiliser pour déterminer l'index d'une fonction dans une interface.
Note: Les concepts objets sont principalement appropriés aux développeurs expérimentés et il n'est pas nécessaire de les maitriser ou meme les comprendre pour realiser des applications ou jeux professionnels