Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : stopper une fonction lancée sur clic [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (juliusius37)

samedi 23 octobre 2004 à 11:07:34 | stopper une fonction lancée sur clic

juliusius37

bonjour tlm!
alors mon petit pb c que j'ai une fonction lecture qui lance la lecture de sons(créés par mon programme) sur ma carte son.
Le pb c que une foi le bouton lecture enfoncé je doit attendre la fin de la lecture de tt les son pour reprendre la main et pouvoir faire autre chose sur mon programme. Et je souhaiterai faire un bouton stop afin d'interrompre la lecture mais la je sais pas du tt comment faire puisse que je n'ai pas la main(le bouton lecture reste enfoncé et je ne pe rien faire).Je sais qu'il faut surement revoir le systeme de lecture entierement mais je sais pas ce que je pe faire aidez moi svp!!!
pour une meilleur compréhension voici le code de la fonction lecture

Sub Lecture(Index)
Dim lanote As Integer
Dim TypeSon As Integer
Dim Temps As Integer
Dim Note1 As Long
Dim Note2 As Long
Dim Note3 As Long
Dim Note4 As Long
Dim Note5 As Long
Dim Note6 As Long
Dim i As Integer

TypeSon = frmPrincipale.CboType.ListIndex
If TypeSon = -1 Then
TypeSon = 0
End If

' Ouverture du port Midi
midiOutOpen hMidiOut, 0, 0, 0, 0
' Déclaration du type de son
midiOutShortMsg hMidiOut, RGB(192, TypeSon, 127) 'Permet de generer le nombre en Hexadecimal
'Creation de la note
i = 0
While Index < IndexMax
MsgBox (Index / 5)
Temps = (1 / frmPrincipale.Txttempo(i).Text)*frmPrincipale.txttemp.Text * 10
If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text + 24 ' calcul note
Note1 = RGB(144, lanote, 127) 'astuce generer un entier long
midiOutShortMsg hMidiOut, Note1 ' envoie note sur port MIDI
End If
Index = Index + 1
If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text + 19 'calcule note
Note2 = RGB(144, lanote, 127) 'astuce generer entier long
midiOutShortMsg hMidiOut, Note2 ' envoie note sur port MIDI
End If
Index = Index + 1
If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text + 15 'calcule note
Note3 = RGB(144, lanote, 127) 'astuce generer entier long
midiOutShortMsg hMidiOut, Note3 'envoie note sur port MIDI
End If
Index = Index + 1

If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text + 10 ' on calcule la note
Note4 = RGB(144, lanote, 127) 'astuce pour generer un entier long
midiOutShortMsg hMidiOut, Note4 ' on envoie la note sur le port MIDI
End If
Index = Index + 1

If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text + 5 ' on calcule la note
Note5 = RGB(144, lanote, 127) 'astuce pour generer un entier long
midiOutShortMsg hMidiOut, Note5 ' on envoie la note sur le port MIDI
End If
Index = Index + 1

If frmPrincipale.txtNote(Index).Text <> "" Then
lanote = 30 + frmPrincipale.txtNote(Index).Text ' on calcule la note
Note6 = RGB(144, lanote, 127) 'astuce pour generer un entier long
midiOutShortMsg hMidiOut, Note6 ' on envoie la note sur le port MIDI
End If
Index = Index + 1
i = i + 1
Sleep (Temps)
Wend
midiOutClose hMidiOut 'ferme le port midi pour arreter la note

End Sub


mailto:S0KARISS@hotmail.com

samedi 23 octobre 2004 à 12:50:04 | Re : stopper une fonction lancée sur clic

Gobillot

d'abord tu devrais simplifier ton propramme et faire une boucle au lieu de faire 6 fois la même chose:

dim x As Integer
dim Note As Long

For x = 1 To 6
If Frmprincipale.txtNote(Index).Text <> "" Then
lanote = 30 + Frmprincipale.txtNote(Index).Text + 24
Note = RGB(144, lanote, 127)
midiOutShortMsg hMidiOut, Note
End If
Index = Index + 1
Next

ensuite, il faut changer la procédure Sleep par autre chose, une boucle avec des DoEvents pour éviter le blocage

Daniel


samedi 23 octobre 2004 à 12:58:55 | Re : stopper une fonction lancée sur clic

Gobillot

un truc du genre:


Private Declare Function GetTickCount Lib "kernel32" () As Long

Dim tp As Long

tp = GetTickCount + Temps
While GetTickCount < tp
DoEvents
Wend


Daniel

dimanche 15 mai 2005 à 22:56:13 | Re : stopper une fonction lancée sur clic


Cette discussion est classé dans : long, index, note, lanote, frmprincipale


Répondre à ce message

Sujets en rapport avec ce message

explication prog son [ par joxman ] bonjours  à tous j'ai  téléchargé un programme  que  mixe  2  wav  ca  marche  bien  c'est  super j'aimerai comprendre le programme je ne comprend pa mixage son wav [ par joxman ] bonjours  à tous j'ai  téléchargé un programme  que  mixe  2  wav  ca  marche  bien  c'est  super j'aimerai comprendre le programme je ne sos urgent svp aide moi [ par kev900000 ] bonjour,j'ai un petit probleme qui m'en pause un gros lolvoila j'ai fait un prog avec un clavier style tactil  il marche avec  la plupart des prog mai Probleme d'index [ par monaco63 ] Bonjour,J'ai un petit soucis qui me pose problème depuis plusieurs jours.Je travaille sous Visual Studio 2005 avec c#Mon probleme le voici :Je dispose comment trouver l'index d'une cellule dans un range? [ par touf57 ] Bonjour,Je cherche à récupérer l'index d'une cellule dans son range voyez le code.En fait je voudrais me passer de la variable i tout simplement. Je s centrer le userform plein écran [ par mythiac ] bonjour,j'ai un problème j'ai réussi à placer mon userform en plein écran, mais ce n'est pas centré, tout est situé en haut à gauche...le même problèm pb d'index :( [ par amel3011 ] Bonjour j'ai un probleme dans mon code, voici une partie :Sub Modifier_Detail_Sortie()Data1.Recordset.MoveFirstDo While Not Data1.Recordset.EOF    If property dans dll [ par candyraton ] Bonjour,J'ai un petit probléme;Comme on dit, vaut mieux 1 qui sait...Je veux mettre cette fonction dans une dll:Public Function CaptureWindow(ByVal hW


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.