Ajout dynamique de menuitems

Signaler
Messages postés
131
Date d'inscription
vendredi 7 juin 2002
Statut
Membre
Dernière intervention
19 janvier 2004
-
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
-
Salut à tous,
J'ai créé un prog utilisant des plugins et qui ajoute un item dans le menu à chaque plugin trouvé.

mais je ne sais pas comment faire pour que lorsque l'utilisateur clique sur le menu créé plus tôt le plugin spécifié s'ouvre.

ou bien, si on pose la question autrement dans

function NewItem(const ACaption: string; AShortCut: TShortCut; AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: THelpContext; const AName: string): TMenuItem;

je mets quoi dans AOnClick pour pouvoir savoir quel item a été cliqué ?

bgK

7 réponses

Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Peut-être pourrais-tu faire un truc dans ce genre :

procedure MaFonction(Sender: TObject);
Begin
LoadLibrary(TMenuItem(Sender).Caption + '.dll');
//si tes plugins sont sous forme de DLLs
end;

et tu fais donc: NewItem(Fichier_Trouvé, ..., MaFonction, ...);

Je ne sais pas si ça marcherait... Et je ne peux malheureusement pas tester ce que j'avance, mais ça me paraît être un solution possible, si j'ai bien compris ce que tu voulais !

Bonne continuation...
Bestiol.
Messages postés
131
Date d'inscription
vendredi 7 juin 2002
Statut
Membre
Dernière intervention
19 janvier 2004

Merçi bcp

Je savais pas q'on pouvait faire
TMenuItem(Sender). ...

sinon, on peut pas mettre direct une fonction dans AOnClick, il faut utiliser une actionlist
et mettre action.OnExecute

bgK
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
C'est vrai que c'est parfois assez utile, pour généraliser des actions qui ont pour sender le même type de composant...

Je suppose donc que ton problème est résolu ?!

En tout cas, je ne pourrai pas t'aider avec l'ActionList, je n'en ai jamais utilisé !! ;)

Bestiol.
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Ravi de t'avoir aidé !!

Au plaisir,
Bestiol.
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Ca y est, j'ai pu le démarrer, mais il y a, au démarrage, une erreur d'ATL unicode, ou un truc dans le genre... Le message est :
"Can not run unicode version of ATL.dll on windows 95 (je suis sous windows 98 !). Please install the correct version"
puis : "atlunicode.dll library cannot be loaded or not found."

Voilà... Après ça, le programme démarre, mais j'ai pas les mêmes boutons que sur le screenshot que tu as mis à disposition... Mais ça c'est peut-être normal...

Bye !
Bestiol.
Messages postés
131
Date d'inscription
vendredi 7 juin 2002
Statut
Membre
Dernière intervention
19 janvier 2004

C franchement bizarre, je n'ai jamais eu ce message (j'en ai eu d'autres mais je les ai fixé).
Encore plus bizarre : j'ai testé sur un pc win98 sans atl.dll ni atlunicode.dll ni delphi et ça marchait nikel

J'ai uploadé ma version de atl.dll (autre pc win2k)

bgK

ps : je n'ai atlunicode.dll sur aucun de mes pc
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Tu sais, là, je ne suis pas sur mon PC, et j'ai l'impression que celui-ci a tendance à planter pour un rien... Faudra que j'essaye chez moi !

Bye !
Bestiol.