Enregistrer seulement lorsqu'une touche est pressée

bikini42 Messages postés 41 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 11 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

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
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
{
    // ..
}
0
bikini42 Messages postés 41 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 11 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....

Quelqu'un a une idée?

Si je ne suis pas clair, redemandez moi svp

Merci bcp
0
salut je sui etudiant a Linuqua j'aimerais avoiur mon compte se connecter
0
Mois Je Suis AGENOR Jean Yves J'etais a L'uniqua, Pour avoir un compt il faut creer un okey mon porte
0
Rejoignez-nous