Bonjour à tous,
Je suis confronté à un problème de mécanisme de programmation assez particulier : je travaille au développement d'une application en C# et dans laquelle certains boutons graphiques doivent activer diverses fonctions. Les boutons à créer sont stockés dans un fichier de configuration que je lis au début de mon programme (fichier du style "nom de bouton -> action à lancer"). Ma question est de savoir dans quel type de structure stocker proprement les boutons, de manière à stocker les fonctions associées à lancer.
Une première idée était de stocker une chaine contenant le nom de la fonction.
Exemple :
Classe "Bouton" :
Code principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Le souci, c'est que ça n'est pas du tout générique puisque je suis obligé d'écrire en dur dans le code l'association entre le bouton "toto" et l'action lancée toto().
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
En fouinant un peu sur le net, je suis tombé sur les delegate, concept que je ne connaissais pas jusqu'à présent. Si j'ai bien tout compris suite à mes lectures, je peux avoir quelque chose du style :
Classe "Bouton" :
Code principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
Sauf qu'apparemment, je ne peux pas donner de chaine de caractères en paramètre lors de l'instanciation de Bouton. J'obtiens une erreur "actionLancee est une variable mais est utilisée comme une méthode". Le truc, c'est que je ne veux surtout pas donner explicitement de nom de méthode (ça ne me ferait au final que ré-écrire en dur l'association bouton->méthode).
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Est-ce que vous auriez une idée de comment mettre en place un système qui me permette de gérer proprement tout ça ?
Merci d'avance pour vos explications.

 

 
		
		 
         
 

 
			
			


 
			 
   
 


 Association d'une action à un bouton
 Association d'une action à un bouton
				 Répondre avec citation
  Répondre avec citation


 
			
 Envoyé par ctxnop
 Envoyé par ctxnop
					
Partager