cs_cocoriri
Messages postés6Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 4 avril 2005
-
7 déc. 2004 à 10:54
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
7 déc. 2004 à 18:07
cocoriri
j'ai des menuitem qui renvoient sur une Form.L'evenement dans cette Form depend de quel menuitem est clické.
Normalement ceci est possible avec 'Sender'.Mais le parametre n'est pas passe avec la methode FormX.show(n'acceptepas de parametre)
Le code:
procedure optiondemenu1click(Sender:tobject);
begin
FormX.show;
end;
...... ' If sender = optiondemenu1click '( ne fonctionne pas)
Par contre tout est ok si on remplace formX.show par FormX.Formshow .
Mais l'aide DELPHI precise qu'on ne doit pas utiliser'FORMSHOW'!
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 7 déc. 2004 à 11:43
Pour être plus exact, et si ton Form s'appelle 'MainForm' :
procedure MainForm.optiondemenu1Click(Sender: TObject);
begin
if (Sender as TMenuItem).Name = 'optiondemenu1' then
// l'instruction ici...
FormX.show;
end;
Et pourquoi ne pas utiliser les tags, surtout s'il y a beaucoup d'options de menu :
procedure MainForm.optiondemenu1Click(Sender: TObject);
begin
case (Sender as TMenuItem).Tag of
0: // instruction A
1: // instruction B
2: // instruction C
end;
FormX.show;
end;
Bonne prog', faut pas mollir :-p
N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose ! :big)
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 7 déc. 2004 à 18:07
Pourquoi passer par une comparaison de chaines en utilisant la propriété Name des TMenuItem ?
Directement :
if Sender = optiondemenu1 then ...
La proposition de Japee qui utilise la propriété Tag est surement la plus efficace pour gérer une telle situation. En plus, elle a le mérite de clarifier grandement le code.
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you