[VB.net ] URGENT Front montant sur un booléen

grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006 - 10 mai 2006 à 11:05
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 - 11 mai 2006 à 08:05
Bonjour
Je cherche à détecter quand une de mes variables de type booléen passe à true. En fait je veux m'en servir pour éxécuter une fonction uniquement lorsqu'il y a un événement type front montant dessus (en fait c'est un bit affecté à une variable), et non pas sur front descendant.

Merci

10 réponses

NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
10 mai 2006 à 11:14
Bonjour

Tu peux créer un thread qui regarde la valeur de ce booleen.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006
10 mai 2006 à 11:19
Salut

Et comment je fais ça ? J'suis plutot novice en prog.
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
10 mai 2006 à 11:28
Bonjour

Tu utilise la classe Thread de l'espace System.Threading

dim MonThread as new System.Threading.Thread(addressof NomProcedureSub)

MonThread.Name=Nomduthread"
MonThread.Start

Et n'oubli pas de l'arrêter à la fin de ton app.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006
10 mai 2006 à 11:31
en fait je parlais pas de créer le thread, je connais ça, mais de comment regarder la valeur du booléen. Il faut vraiment que j'ai quelque chose du genre:

si évenement front montant sur le booléen --> on éxécute la fonction
si évenement front descendant sur le booléen --> on ne fait rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
10 mai 2006 à 11:36
Bonjour

Tu prend une référence sur un objet contenant ton Booléen, tu tu en récupére la valeur régulièrement.

Un test tout bête :
dim lAncValue as boolean
do
if lAncValue<>MonObjet.Bolléen Then
lAncValue=MonObjet.Bolléen
if lAncValue then Méthode à éxécutée
End If
loop

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 mai 2006 à 11:50
Salut,

Je pense que c'est avec des evenements qu'il faut gérer cela.

http://plasserre.developpez.com/v5-2.htm

Bon courage
0
grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006
10 mai 2006 à 11:52
OK je vais essayer de me débrouiller avec ça, merci du coup de main.
0
grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006
10 mai 2006 à 11:52
OK je vais essayer de me débrouiller avec ça, merci du coup de main.
0
grand prophete Messages postés 13 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 1 juin 2006
10 mai 2006 à 14:44
En fait ce test ne me sert à rien, il ne fait juste que recopier l'état de mon bit :
dim lAncValue as boolean
do
if lAncValue<>MonObjet.Bolléen Then
lAncValue=MonObjet.Bolléen
if lAncValue then Méthode à éxécutée
End If
loop
lAncValue ne reste à true que quelques millisecondes, ma fonction n'a pas le temps de s'éxécuter entièrement j'ai l'impression vu qu'elle est assez longue. Ce que je veux dire c'est "si tu détectes un front montant, éxécute 1 fois ma fonction", un peu comme si je lui disais de le faire en cliquant sur un bouton, sauf que la c'est sur front montantd'un bit.
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
11 mai 2006 à 08:05
Bonjour

Il est possible que ce soit à cause du tampon du tread.

dim lAncValue as boolean
do
if lAncValue<>MonObjet.Bolléen Then
lAncValue=MonObjet.Bolléen
if lAncValue then Méthode à éxécutée
End If
System.Threading.Thread.Sleep(10) 'Ajoute ça, ça évite de charger le proc à 100%
loop

Si tu veux déclencher uniquement une fois ta fonction, utilise un autre booléen.
Ce code éxécute la méthode à chaque front détecté (dans la limite des possibilité de la machine)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0