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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.