IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

bouton de commande bloqué [WD17]


Sujet :

WinDev

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut bouton de commande bloqué
    Bonjour,

    AVANT DERNIERE QUESTION

    J'ai dans une fenêtre principale un(des) bouton(s).
    ex un bouton PARAMETRE qui m'ouvre une FI 1.

    Ensuite j'ai une FI 2 qui s'exécute au lancement de l'appli. Dans celle-ci (FI 2) j'ai ces codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    gfnTemps est un entier
    gfbRecord est un booléen     // Permet d'identifier l'action en cours (Enreg ou lecture)
     ResDonnée est un entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    JAUGE..BorneMax = 15
    JAUGE = 0
    Timer(AfficheMessage2, 100, 1)
    Actualise()
     
     
     
    //Enregistrement d'un nouveau fichier
    gsNomFic ="A.wav"
    // si ce fichier existe déjà
    SI fFichierExiste(gsNomFic) = Vrai ALORS
    	//1 : &Ecraser
    SINON		
    	// on crée le fichier car on en a besoin pour
    	// avoir ensuite le chemin court renvoyé par le système
    	nIdFic est un entier
    	nIdFic = fOuvre(gsNomFic,foCréation)
    	fFerme(nIdFic)
    FIN
     
    // ici, c'est sûr le fichier existe
    gsNomFic = fCheminCourt(gsNomFic)	
     
    //Si un fichier est déja chargé, on le ferme
    MCIFerme("MySound")
     
    //Initialisation d'un nouveau fichier
    MCIExécute("open new type waveaudio alias mysound")
    SI MCIRécupère()<>"" ALORS
    	// Début de l'enregistrement
    	MCIExécute("record mysound")
     
    	//Spécifie l'action en cours
    	gfbRecord = Vrai
     
    	Temporisation(1000)
     
    	//si enregistrement en cours
    	SI gfbRecord ALORS
     
    		//Affichage d'un sablier pour patienter
    		Sablier(Vrai)
     
    		// sauvegarde
    		SI MCIExécute("save mysound "+gsNomFic+" wait") ALORS 
    			Sablier(Faux)
     
    		SINON
    			//Tentative de sauvegarde dans un fichier temporaire pour ne pas perdre l'enregistrement
     
    			SI MCIExécute("save mysound C:\DICTASAV.WAV wait")<>"" ALORS //Blocage pendant la sauvegarde
    				Info("Fichier son sauvegardé dans le fichier C:\DICTASAV.WAV")
    				Sablier(Faux)
    			SINON
    				FinProgramme("Impossible de sauvegarder l'enregistrement")
    			FIN
    		FIN
    	FIN
    FIN
    J'ai une procédure STOPTIMER

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCEDURE StopTimer()
     
    FinAutomatismeProcédure() // Résumé : <indiquez ici ce que fait la procédure>
     
    ChangeFenêtreSource(EXPRESS_FEN_Encours2, EXPRESS_FEN_Encours3)
    j'ai une procédure affichemessage2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PROCEDURE AfficheMessage2()
     
    JAUGE ++
     
    // On a atteint la fin du décompte
    SI JAUGE >= 15 ALORS
    	FinTimer(1)
    	LIB_MESSAGE1 = "Message 2"
    FIN
    PROBLEME: Quand je teste l'application, les boutons sont bloqués.

    Existe t'il une solution ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Je ne vois pas le code des boutons...
    Qu'est-ce qu'il faut comprendre par "bloqués" ?

    Tatayo

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    Peu importe les codes des boutons, le soucis est le même pour tous.

    Dès que FI 2 est lancée, mes boutons de page principale ne sont pas cliquable. Je clique dessus et là, rien, ils sont bloqués.

    Et ils se débloquent quand mon code de FI 2 est fini.....

    Mais voici quand même un code d'un des boutons:
    (ouverture dans FI 3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ChangeFenêtreSource(FI_CODE, EXPRESS_FI_CODE)
    Sinon j'ai aussi un bouton quitter (appli) mais qui bloque aussi

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    dans l'aide de la fonction Ouvre :

    Remarque : Les champs de la fenêtre précédente sont désactivés

    Bon courage,

    Nicolas

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    OK, mais boutons sont appelés après que ma FI soit lancée.

    dans l'aide ouvre je suis retombé sur la fonction ResFenPrécédente = FenPrécédente() qui je pense reprend mon problème mais j'arrive pas à la mettre en application

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Citation Envoyé par Nathalie35000 Voir le message
    Dès que FI 2 est lancée, mes boutons de page principale ne sont pas cliquable. Je clique dessus et là, rien, ils sont bloqués.
    C'est normal.
    Le code de la fenêtre interne est lancé dans le thread principal, celui-ci ne rend la main qu'une fois que le code est terminé.
    Pour que l'utilisateur garde la main sur l'application il faut utiliser un thread secondaire.

    Tatayo.

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    pourrais je avoir de l'aide sur thread je rame trop sur cette fonction

  8. #8
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Nathalie35000 Voir le message
    pourrais je avoir de l'aide sur thread je rame trop sur cette fonction
    Pour avoir de l'aide sur les thread, il faudrait déjà que nous montre le code que tu as écris et qui pose problème.

    Si tu ne comprends pas le fonctionnement des thread, fais toi un projet exemple simplifié et essaye par toi même et pose nous les questions après.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  9. #9
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    c'est expliqué tout en haut

  10. #10
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Nathalie35000 Voir le message
    pourrais je avoir de l'aide sur thread je rame trop sur cette fonction
    Citation Envoyé par DelphiManiac Voir le message
    Pour avoir de l'aide sur les thread...
    Je ne vois nulle part dans ton code une quelconque utilisation de thread.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  11. #11
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    Bah c'est bien pour ça.

    j'ai expliqué mon problème
    j'ai mis mon code pour montrer

    et là, il m'a été conseiller thread

    sauf que thread j'y comprend rien

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    As-tu au moins tapé thread sur google ? Sais-tu ce qu'est un thread ? La programmation c'est aussi l'autoformation...

    Dire comme je veux de l'aide sur "thread" ça veut rien dire. Si comme si je disais je veux de l'aide sur "station service" ou "Pinocchio"...

    Nous on peut répondre à des questions mais pas taper un long discours généraliste... pour ça il existe wikipedia, l'aide en ligne et de nombreux site (sur dvp.com tu as des tutoriaux...)
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  13. #13
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    je demanderais pas si j'ai pas déjà fait de recherches

    et

    je demanderais pas si je savais

  14. #14
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Citation Envoyé par Nathalie35000 Voir le message
    je demanderais pas si j'ai pas déjà fait de recherches

    et

    je demanderais pas si je savais
    On va commencer par là :
    http://fr.wikipedia.org/wiki/Thread_(informatique)

    [edit]
    ...et franchement cette façon de répondre aux gens qui te conseillent et t'orientent ne donne pas envie de t'aider
    [/edit]
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Dans le principe c'est "assez" simple:
    1. Il faut sortir le code de l'init de la fenêtre et le déplacer dans une procédure
    2. Dans l'init de la fenêtre il faut lancer la procédure avec ThreadExecute().

    Ensuite il faut prévoir le cas où l'utilisateur ferme la fenêtre alors que le thread n'est pas terminé, le cas où la procédure est lancée plusieurs fois en parallèle...

    Tatayo.

  16. #16
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    MERCI tatayo .....


    Donc si je comprend bien, depuis ma page principale je crée une procédure ProcédureThread par exemple.

    et dans cette procédure j'indique :

    ChangeFenêtreSource(EXPRESS_FEN_Encours2, EXPRESS_FEN_Encours3)

    c'est ce code ci-dessus qui m'ouvre une FI

    ENSUITE

    dans ma page principale dans la partie INITIALISATION

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ProcédureThread est 
    CClasse est 
    MéthodeGlobale est 
     
    ThreadExécute("Thread1", threadNormal, ProcédureThread)
    ...
    // Appel d'une méthode globale d'une classe
    ThreadExécute("Thread2", threadNormal, CClasse::MéthodeGlobale)
    Euh ?????

  17. #17
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Citation Envoyé par Nathalie35000 Voir le message
    Euh ?????
    Euh quoi ?
    Ca plante ? Ca ne marche pas comme prévu ?
    D'ailleurs il est bizarre ton code, surtout les 3 premières lignes.

    Et mon petit doigt me dit que tu as mis ce code dans l'init de la fenêtre principal, et non de la fenêtre interne.

    Tatayo.

  18. #18
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    EXACT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ProcédureThread est une procedure
    CClasse est 
    MéthodeGlobale
    Mais MéthodeGlobale et cclasse, je vois pas ce que c'est

  19. #19
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Je viens de comprendre !
    C'est une copie du code de l'aide en ligne !
    En fait ce code explique 2 choses:
    Comment lancer une procédure dans un thread secondaire
    Comment appeler une méthode globale de classe dans un thread secondaire.

    Le deuxième cas ne nous intéresse pas, on ne parle pas de POO ici...
    Il faut prendre un minimum de recul par rapport aux exemples.

    Je reprends:
    1. Il faut créer une procédure, et y mettre le code qui est actuellement dans la section "initialisation" de la fenêtre interne.
    2. Dans la section "initialisation" de la fenêtre interne, il faut appeler cette procédure avec ThreadExecute().
    Le bonne syntaxe est indiquée plus bas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThreadExécute("th",threadNormal, ProcThread)
    ProcThread étant le nom de la procédure du point 1.

    WinDev est livré avec des exemples, le mieux serait de jeter un œil à ceux qui parlent des threads.

    Tatayo.

  20. #20
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    ah je pense que c'est bon mais


    je lance mon appli

    ma FI se charge (celle ou le Thread a été créé).

    2 sec plus tard, j'ai une 2eme FI qui se lance (pendant que la première s'exécute).
    Sauf que toute mes procédures de la deuxième FI font planter y compris mes procédures de la page principale

    Je pense que c'est dû à la création du Thread

    Mais comment le Thread qui est dans FI 1 peut faire planter les procédure de ma 2ème FI (et les procédures de la page principale ?

    Code dans ma FI 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    Li_nbligneFichierExcel2 est un entier
    ls_contenuFichierTexte2 est une chaîne
    ls_ligneFichierTexte2 est une chaîne
    lxls_fichierExcel2 est un xlsDocument
    toto2 est une chaîne
    tata2 est une chaîne
    ResDonnée2 est un entier
    Mesure2 est un entier
     
     
    INITIALISATION DE FI 1
     
    ThreadExécute("Thread1",threadNormal, ProcThread)
     
    PROCEDURE AfficheMessage101()
     
    JAUGE101 ++
     
    // On a atteint la fin du décompte
    SI JAUGE101 >= 10 ALORS
    	FinTimer(101)
    	LIB_MESSAGE101 = ""
    FIN
     
     
    PROCEDURE StopTimer()
     
     
    ChangeFenêtreSource(EXPRESS_FEN_Encours101, EXPRESS_FEN_Encours102)
     
     
     
    PROCEDURE ProcThread()
     
    //Le timer automatique "Actualise" est exécuté automatiquement directement après le code d'initialisation de la fenêtre
    JAUGE101..BorneMax = 10
    JAUGE101 = 0
    Timer(AfficheMessage101, 100, 101)
     
     
    lxls_fichierExcel2=xlsOuvre("C:\T.xls",xlsEcriture)
    SI ErreurDétectée = Faux ALORS
    	Li_nbligneFichierExcel2=1
     
    	ls_contenuFichierTexte2= fChargeTexte("C:\t.txt")
    	POUR TOUTE CHAÎNE ls_ligneFichierTexte2 DE ls_contenuFichierTexte2 SEPAREE PAR RC
    		toto2=Gauche(ls_ligneFichierTexte2,12)
    		tata2=Droite(ls_ligneFichierTexte2,10)
    		lxls_fichierExcel2[Li_nbligneFichierExcel2,"A"]=toto2
    		lxls_fichierExcel2[Li_nbligneFichierExcel2,"B"]=tata2
    		Li_nbligneFichierExcel2++
    	FIN
    	// Lecture d'une cellule pour test
    	ResDonnée2= xlsDonnée(lxls_fichierExcel2,2,2,Faux)
    	xlsSauve(lxls_fichierExcel2)
    	xlsFerme(lxls_fichierExcel2)
     
    SINON
    	Info(ErreurInfo())
    FIN
     
    Mesure2 = -35
    SI ResDonnée2 < Mesure2 ALORS
    	ChangeFenêtreSource(EXPRESS_FEN_Encours101, EXPRESS_FEN_Encours103)
    SINON
    	ChangeFenêtreSource(EXPRESS_FEN_Encours101, EXPRESS_FEN_Encours102)
    FIN



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Erreur à la ligne 0 du traitement Procédure locale Actualise.
     
     
    ----- Informations techniques -----
     
    Projet : EXPRESS_Mon_Projet
     
    Appel WL :
    Traitement de 'Procédure locale Actualise' (EXPRESS_FEN_Encours2.PROCEDURE.Actualise), ligne 0, thread 0
     
    Code erreur : 0
    Niveau : pas d'erreur (EL_NONE)
     
    Informations supplémentaires :
    EIT_PILEWL :
    Procédure locale Actualise (EXPRESS_FEN_Encours2.PROCEDURE.Actualise), ligne 0
    Initialisation de EXPRESS_FEN_Encours2 (EXPRESS_FEN_Encours2.EXPRESS_FEN_Encours2), ligne 6
    EIT_DATEHEURE : 02/10/2013 19:44:14
     
    Assistance
    voici mon code EXPRESS_FEN_Encours2 ( qui fonctionne sans thread dans FI 1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    GLOBALE
    gfnTemps est un entier
    gfbRecord est un booléen     
     ResDonnée est un entier
     
    INITIALISATION de EXPRESS_FEN_Encours2 (FI 2)
     
    JAUGE..BorneMax = 15
    JAUGE = 0
    Timer(AfficheMessage2, 100, 1)
    Actualise()
     
     
    //Enregistrement d'un nouveau fichier
    gsNomFic ="1.wav"
    // si ce fichier existe déjà
    SI fFichierExiste(gsNomFic) = Vrai ALORS
    	//1 : &Ecraser
    SINON		
    	// on crée le fichier car on en a besoin pour
    	// avoir ensuite le chemin court renvoyé par le système
    	nIdFic est un entier
    	nIdFic = fOuvre(gsNomFic,foCréation)
    	fFerme(nIdFic)
    FIN
     
    // ici, c'est sûr le fichier existe
    gsNomFic = fCheminCourt(gsNomFic)	
     
    //Si un fichier est déja chargé, on le ferme
    MCIFerme("MySound")
     
    //Initialisation d'un nouveau fichier
    MCIExécute("open new type waveaudio alias mysound")
    SI MCIRécupère()<>"" ALORS
    	// Début de l'enregistrement
    	MCIExécute("record mysound")
     
    	//Spécifie l'action en cours
    	gfbRecord = Vrai
     
    	Temporisation(1000)
     
    	//si enregistrement en cours
    	SI gfbRecord ALORS
     
    		//Affichage d'un sablier pour patienter
    		Sablier(Vrai)
     
    		// sauvegarde
    		SI MCIExécute("save mysound "+gsNomFic+" wait") ALORS 
    			Sablier(Faux)
     
    		SINON
    			//Tentative de sauvegarde dans un fichier temporaire pour ne pas perdre l'enregistrement
     
    			SI MCIExécute("save mysound C:\DICTASAV.WAV wait")<>"" ALORS //Blocage pendant la sauvegarde
    				Info("Fichier son sauvegardé dans le fichier C:\DICTASAV.WAV")
    				Sablier(Faux)
    			SINON
    				FinProgramme("Impossible de sauvegarder l'enregistrement")
    			FIN
    		FIN
    	FIN
    FIN
     
     
     
     
    PROCEDURE AfficheMessage2()
     
    JAUGE ++
     
    // On a atteint la fin du décompte
    SI JAUGE >= 15 ALORS
    	FinTimer(1)
    	LIB_MESSAGE1 = "Message 2"
    	FIN
     
     
     
     
    PROCEDURE StopTimer()
     
    FinAutomatismeProcédure() // Résumé : <indiquez ici ce que fait la procédure>
     
    ChangeFenêtreSource(EXPRESS_FEN_Encours2, EXPRESS_FEN_Encours3)
     
     
     
     
    // La procédure est exécutée automatiquement, après le code d'initialisation de la fenêtre
    // Elle sera répétée en boucle, en attendant 1 seconde entre chaque appel
    // Un nouveau timer est créé pour chaque appel à la procédure
    // 
     
    PROCEDURE Actualise()
    c'est bien une procédure locale que je dois créer pas une globale ?
    dois je faire un Thread dans ma page principale et dans la FI 2? ( j'ai essayé mais ça donne rien de plus)

    quel chantier

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. PB Bouton de commande
    Par tigerfish dans le forum Access
    Réponses: 15
    Dernier message: 27/03/2006, 11h27
  2. [VBA-W] Créer un bouton de commande
    Par maketossss dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/11/2005, 17h07
  3. Bouton de commande - Aller à un onglet défini
    Par JF.Stachera dans le forum Access
    Réponses: 2
    Dernier message: 16/09/2005, 17h58
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01
  5. Ajout de bouton de commandes dans la barre de menus
    Par vanessaf22 dans le forum IHM
    Réponses: 9
    Dernier message: 21/07/2003, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo