Bonjour � tous, je ne pense pas que ce que je souhaite faire est r�alisable, mais on ne sait jamais.
J'aimerais introduire un syst�me d'�v�nement. Le syst�me actuel consiste � faire un emit("nom de l'�v�nement",/*param�tres*/); (les param�tres sont � nombre ind�termin�s (utilisation de variadiques template)).
Mon probl�me :
Je ne peux savoir ou l'utilisateur voudra �mettre : si je cr�� un objet Textbox, je peux d�cider de mettre un emit quand la valeur change, quand la textbox est cliqu�e,... mais je ne peux savoir lesquelles seront utiles � l'utilisateur. De plus, comment d�cider si il faut �mettre au d�but de la fonction qui change la valeur( avant qu'elle ne change) ou � la fin (une fois qu'elle est chang�e)?
Les solutions :
-Solution que j'utilise actuellement mais qui ne me satisfait pas : je met des emit "un peu partout" en esp�rant que l'utilisateur trouvera ce qu'il veut.
-Oblig� l'utilisateur � passer par un parser (de mon invention), qui trouvera la macro SetEventEmission(nom de la fonction, END ou BEGIN voire num�ro de ligne, nom de l'�v�nement, param�tres �ventuels); Le parser rajoutera la ligne de code n�c�ssaire. Cette solution ne me satisfait pas : obliger de passer par un parser + coder le parser.
-Trouver avec le pr�processeur un moyen intelligent de rajouter ce genre de macro. D�faut : pas encore trouv� comment faire.
L'objectif : pouvoir d�finir la macro :
-SetEventEmission(nom_de_la_fonction,Num�ro de ligne / Begin/End (juste avant le return), nom_de_l'�v�nement,param�tres);
Ainsi, plus besoin d'�crire aucun emit, c'est l'utilisateur qui choisit.
Ma question : Peut-on faire sa avec le pr�processeur ? Si oui, comment ? Si non, existe-il un moyen alternatif ?
Merci d'avoir pris le temps de lire le post, en esp�rant que vous m'ayez compris.
Partager