Bonjour,
je débute en POO. Dans le cadre d'une tentative de développement d'un jeu (qui existe en plateau) j'approfondis (du moins j'essaie) ma connaissance d'XL.
Là j'en suis à utiliser des classes perso.
J'ai 2 classes dont les objets sont des MSFORMS.IMAGE
J'ai créé des évènements (sur click et mousemove) dans les 2 classes.
POur créer les objets basés sur ces classes j'ai utilisé 2 méthodes :
- pour l'une je crée mes objets à partir d'objet activeX image déjà existant dans le classeur (via la macro test1 / classe starcraft)
- pour l'autre je crée l'objet à partir de OLEObjects.Add (via la macro test2/ classe cards)
Dans le 1er cas tout se passe bien, mes objets sont bien créés et réagissent aux évènements créés.
Dans le 2e cas , les objets activeX image sont bien créés mais ils ne réagissent pas aux évènements. Mais une fois créés, si j'affecte ces contrôles activeX image aux objets du type de la classe perso et bien là ils réagissent aux évènements.
Ca fait des jours que j'essaie de créer mes objets de la 2e classe d façon différente sans succès. C'est la raison pour laquelle je sollicite votre aide sur le sujet.
classeur1.xlsm
Comme je le dis je débute ; il ya peut-être d'autres façon de faire mais sachez que le 1er cas est pour un nb d'objet restreint avec que le 2e est pour une collection bien plus importante d'où l'idée de ne pas surcharger le classeur et de créer l'objet à la demande quand c'est nécessaire.
Merci d'avance. Le classeur simplifié avec le strict nécessaire est en PJ. Il faut juste avoir 2 images gif (image1.gif et image2.gif dans un répertoire c:\image)
EDIT : en mettant des timers et en regardant l'exécution des programmes quelque chose m'interpelle : la création des objet par la méthode OLEObject.Add fait :
- qu'on ne peut pas interrompre l'exécution de la macro (c'est vrai avec la classe choisie ici mais aussi avec d'autres type comme les boutons (j'ai essayé) Et j'ai essayé avec des exemples de programme de tutoriels et c'est pareil.
- quelque soit le nombre d'objets créés c'est comme si les instructions qui suivent étaient toutes exécutées à la fin (exemple les images affectées ne se voient qu'à la fin,, le nom des objets (modifiés dans la macro) pareil)
Je me dis que ce fonctionnement (qui est peut-être anormal) empêche l'affectation d'une objet de ma classe perso à l'objet qui vient d'être créé et que tout mes soucis viennent de là.
Partager