Bonjour,
Envoyé par
adelcrb
j'ai déclarer ashift comme TShiftState mais j'ai pas trouver quoi lui affecter (j'ai fait une petite recherche et j'ai trouver que ça a un rapport avec les touches de clavier)
j'ai déclarer ahandled comme étant boolean mais bon j'ai pas trouver ce que ça veut dire
et ça n'a pas marcher rien ne ce passe lors de l’appelle.
Effectivement TShiftState a rapport avec les touches claviers mais aussi les boutons de la souris, c'est un type ensemble, défini dans l'unité Classes.
Pour Delphi XE2, on a :
type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble, ssTouch, ssPen, ssCommand);
Pour le définir son contenu, on va écrire par exemple :
1 2 3 4
| // Touches Shift et Ctrl enfoncées ainsi que le bouton gauche de la souris
aShift := [ssShift, ssCtrl, ssLeft];
// Ensemble vide
aShift := []; |
Pour tester l'existence d'un élément dans l'ensemble, on va écrire :
1 2
| if ssLeft in aShift then
Beep; |
Enfin, tout cela, on le trouve dans l'aide...
Maintenant pour appeler directement cette procédure normalement déclenchée lors d'un événement, on pourrait écrire :
1 2 3 4 5 6
| var
AHandled: Boolean;
// ...
gridappapplicationCellClick(nil, nil, mbRight, [], AHandled);
// ou suivant ce que l'on veut simuler (appui sur Ctrl et Alt et bouton droit par exmple)
gridappapplicationCellClick(nil, nil, mbRight, [ssCtrl, ssAlt, ssRight], AHandled); |
Ensuite, le résultat dépendra du code présent dans la procédure gridappapplicationCellClick...
Partager