begin process at 2010 02 10 03:56:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

stopper une fonction lancée sur clic


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

stopper une fonction lancée sur clic

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ée 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...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales