Enregistrer seulement lorsqu'une touche est pressée
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010
-
23 avril 2007 à 10:37
yves777 -
21 sept. 2012 à 19:12
Bonjour à tous,
Je vous écris car je tente, en vain, de définir un moyen d'enregistrer des données seulement lorsque l'utilisateur appuie sur la touche Espace.
La fonction d'enregistrement existe déjà, je voudrais juste la déclencher seulement lors de cet événement.
Seulement voilà, je ne peux pas utiliser la fonction de déclenchement en réalisant un:
override protected void OnkeyPress .....
car je dois placer mon déclenchement dans une fonction même.
Il me faudrait donc plutôt quelque chose du type :
if (e.KeyChar == (
char)
Keys.Space){
// Fonction d' Enregistrement}
Cependant, je ne sais pas comment déclarer mes variables et je ne sais même pas si cela sera possible de cette façon.
Si quelqu'un a une petite idée, je suis vraiment preneur ;)
Merci de tout coeur
A voir également:
Enregistrer seulement lorsqu'une touche est pressée
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 23 avril 2007 à 17:58
Salut, ça reste quand même possible avec les évènements à l'aide d'une glabale variable qui maintient l'état de la touche SPACE par exemple.. ou bien..
// Dans la forme.
[ DllImport( "user32.dll" ) ]
private static extern short GetKeyState( int vk );
// ..
// Dans la fonction.
if ( ( GetKeyState( 0x20 ) & 0x8000 ) == 0x8000 ) // VK_SPACE
{
// ..
}
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010 24 avril 2007 à 09:32
désolé, dans mon cas, ça ne marche pas....je suis désolé d'embeter avec ce pb....
le problème c'est que l'action de la barre espace est repérée dans une boucle...
mon programme est un peu de cette sorte :
void Afficher_Image()
{
message =
"pause";
enreg.pause_enregistrement();
log.Text +=
"pause";log.Text +=
Environment.NewLine;affIm.Show(); //affIm ouvre une nouvelle Forme dans lequel vont défiler des images lors de la pression de la barre espace
}
}
override
protected
void OnKeyPress(
KeyPressEventArgs e) //Lors de la pression Espace du défilement des images, j'aimerais que cela reprenne l'enregistrement également{
if (e.KeyChar == (
char)
Keys.Space){
//reprise de l'enregistrement lors de l'appui sur la barre espace
...
}
En gros, mon pb c'est que l'enregistrement doit débuter SEULEMENT lorsque l'image suivante est affichée. Mais l'image est affichée dans une autre Forme et l'action s'effectue par la barre Espace.
C'est pourquoi j'aimerais associer la reprise de l'enregistrement à l'appui de la barre espace afin que les 2 choses soient synchronisée.
Mais apparemment, ma Forme principale ignore mon action Espace d'enregistrement et ne prend en compte que celle de la Forme où apparaissent les images.
J'ai essayé d'associer une autre touche à l'enregistrement mais cela fait la même chose.
J'ai l'impression que mon affIm.Show() fige mon formulaire et qu'il attend que cela soit fini pour accepter les autres requêtes....