Utilisation des TGrpButtonItem en création dynamique

Messages postés
1
Date d'inscription
samedi 18 juin 2016
Dernière intervention
18 juin 2016
- - Dernière réponse : papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
- 21 juin 2016 à 15:07
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...
Afficher la suite 

Votre réponse

2 réponses

Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
0
Merci
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
Commenter la réponse de papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
0
Merci
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
Commenter la réponse de papyvore

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.