Utilisation des TGrpButtonItem en création dynamique

Signaler
Messages postés
1
Date d'inscription
samedi 18 juin 2016
Statut
Membre
Dernière intervention
18 juin 2016
-
Messages postés
191
Date d'inscription
samedi 15 novembre 2003
Statut
Membre
Dernière intervention
31 mai 2020
-
Bonjour,

J'ai créé une appli pour rassembler divers raccourcis vers des exécutables sous la forme d'une liste de boutons.

Pour ce faire, j'utilise le composant TButtonGroup. Celui-ci est éditable par l'utilisateur et les paramètres (caption, chemin de l'exe, ...) des boutons créés ou supprimés sont enregistrés dans un fichier ini.

Tous les boutons de la liste utilisent la même procédure, qui fait appel à shellexecute mais je n'arrive pas à détecter quel bouton a été clické.

Lorsque j'utilise le sender, la procédure 'reçoit' le TButtonGroup mais pas le TGrpButtonItem.

Voici le code:

procedure TMainForm.BtnClick(Sender: TObject);
begin
With Sender as TControl do
begin
ShowMessage(Hint);
//ShellExecute(Handle,'open', PWIDEChar(Hint), nil, nil, SW_SHOWNORMAL);
end;
end;

J'ai inséré un showmessage afin de voir le Hint et c'est bien celui du TButtonGroup mais pas celui du TGrpButtonItem.

Enfin, si je remplace Sender as Tcontrol par Sender as TGrpButtonItem, j'ai 'Transtypage de classes incorrect'.

Merci de votre aide...

2 réponses

Messages postés
191
Date d'inscription
samedi 15 novembre 2003
Statut
Membre
Dernière intervention
31 mai 2020
5
salut
le hint ne s'affiche pas dans un ShowMessage(Hint), mais uniquement au survol par la souris du ButtonGroup1.tems[index],
a condition que ButtonGroup1.ShowHint soit a true
Messages postés
191
Date d'inscription
samedi 15 novembre 2003
Statut
Membre
Dernière intervention
31 mai 2020
5
je crois avoir compris tu veut exécuter un programme !?
alors si hint = Calc.exe par exemple

ShellExecute(Handle,'open', PWIDEChar(ButtonGroup1.Items[0].Hint), nil, nil, SW_SHOWNORMAL); 

alors teste cette ligne elle lance la calculette
papyvore