Récupérer le nom du menu parent (PopupMenu) de l'option cliquée
Bonjour,
jusqu'à présent, j'ai utilisé FreePascal pour des petits projets rapidement prototypés et c'etait très bien, le langage est rapide, plus agréable à utiliser que le C mais je m'attaque à un projet GUI et j'ai un problème. Je me rends compte que la doc de Lazarus/FreePascal est vraiment insuffisante et pas du tout explicite (par exemple citer les fonctions, c'est bien mais il y a très peu d'exemples). Bon voici ma question :
j'ai créé un menu popup dynamique contrôlé par un TrayIcon ; tout se passe bien, j'ai donc un menu qui s'affiche correctement, j'ai lié les options à une procédure MyPopupEvent pour récupérer le nom de l'option du menu cliqué et ça marche bien, je récupère l'info par :
Code:
1 2 3 4
| var
ResCH : string;
ResCH := (sender as TmenuItem).caption; |
Maintenant le problème. Je voudrais récupérer également le nom du menu parent de l'option cliquée et là ça coince : j'ai récupéré un exemple sur le net que j'ai modifié :
Code:
1 2 3 4 5 6 7 8
| var
ALabel : TLabel;
Caller : TComponent;
Caller := ((Sender as TMenuItem).GetParentMenu as TPopupMenu).PopupComponent;
ALabel := TLabel(Caller);
ShowMessage(ALabel.Caption); // il semble que cette ligne provoque une erreur fatale du genre "le projet a levé une exception de class External:SIGSEGV At Adress ....." |
Le projet se compile pourtant parfaitement ; si vous avez une idée je suis à l'écoute, merci.