PDA

Voir la version complète : Créer plusieurs UserArea.



Jean-Laurent
17/12/2006, 12h15
Salut les programmeurs. :odile:

J'ai trouvé enfin un peu de temps libre et j'essaye depuis mercredi de créer le fameux rideau paramétrique.

J'ai choisi pour progresser (car je suis une bille en programmation) de créer une ExpressionPlugIn.
Mon plug-in fonctionne, mon rideau se tortille dans tous les sens avec les sliders lorsque je clique sur le tag etc...
Le problème c'est que comme c'est un Plug-in modal (il paraît que c'est plus simple donc j'ai pas chercher à compliquer), il faut fermer la fenêtre de dialogue pour visualiser les changements. Pas très sexy. :?

J'ai donc choisi de créer une UserArea, pour prévisualiser les formes du rideau. Et ça marche.

Le problème (la question bête arrive) et que je souhaiterais en créer une deuxième pour afficher des informations différentes.
Je pensais qu'il suffirait de redéfinir une nouvelle classe dérivée de la classe GeUserArea, dans le genre:

class MyUserArea1 : GeUserArea etc...
class MyUserArea2 : GeUserArea etc...

En changeant ensuite les paramètres:
MyUserArea1::GetUserWidth()
{return 400;}
MyUserArea2::GetUserWidth()
{return 200;}

Ensuite changer l'ID:

AddUserArea(6000,BFH_SCALEFIT,0,0);
AddUserArea(6001,BFH_SCALEFIT,0,0);

ua = new(MyUserArea,6000,this); return TRUE;
ua2=new(MyUserArea2,6001,this); return TRUE;

Le problème est que malgré mes efforts je ne parviens pas à afficher quoi que ce soit dans la deuxième UA.

Est-il nécessaire de créer une deuxième classe?
Certaines fonctions comme Draw(x1,y1,x2,y2) doivent-elles être privées?

J'ai changé les variables, les noms des fonctions, public, private etc... Rien n'y fait, la deuxième reste vierge, je ne parviens qu'à modifier sa taille.

Je trouverai certainement un jour, mais comme la limite de temps est mercredi un coup de main serait le bienvenue car là je bloque.

Merci d'avance. :poucehaut: