Version française
Home     About     Download     Resources     Contact us    
Browse thread
Unix.sleep et bibliothèque graphique
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Laure Danthony <ldanthon@e...>
Subject: Unix.sleep et bibliothèque graphique
suite à quelques essais infructeux et de discussions, voici un résumé du pb :
il s'agit de mettre des pauses au milieu de programmes graphiques qui s'éxécutent trop vite

(*mail de Luc Bougé*)

let n = ref 0 in while (not (key_pressed())) do (lineto !n   
!n; n := !n + 1) done;;                                      
                                                             
Ca marche, mais il faut que la fenetre graphique soit        
activee (par exemple en                                      
pointant dessus).                                            
                                                             
                                                             
J'ai fait quelques essais avec sleep. Je produis d'abord un  
toplevel par##                                               
                                                             
        ocamlmktop -o myocaml graphics.cma unix.cma          
                                                             
1) Le programme suivant marche bien.                         
                                                             
open Graphics;;                                              
open Unix;;                                                  
                                                             
while true do                                                
  print_float (time());                                      
  print_newline();                                           
  Unix.sleep 2;                                              
done                                                         
;;                                                           
                                                             
2) Par contre, si j'ajoute open_graph "", cela               
ne marche plus.                                              
                                                             
open Graphics;;                                              
open Unix;;                                                  
                                                             
open_graph "";;                                              
                                                             
while true do                                                
  print_float (time());                                      
  print_newline();                                           
  Unix.sleep 2;                                              
done                                                         
;;                                                           
                                                             
et la precedente version ne marche plus non plus, meme si je 
tue la fenetre...                                            
                                                             
Je pense qu'il y a un probleme de compatibilite entre les    
deux                                                         
bibliotheques, car la gestion graphique utilise des threads, 
et                                                           
il y a une autre fonction "thread" dans cette bibliotheque.open Graphics;;                                              
open Unix;;                                                  
                                                             
open_graph "";;                                              
                                                             
while true do                                                
  print_float (time());                                      
  print_newline();                                           
  Unix.sleep 2;                                              
done                                                         
;;                                                           
                                                             
et la precedente version ne marche plus non plus, meme si je 
tue la fenetre...                                            
                                                             
Je pense qu'il y a un probleme de compatibilite entre les    
deux                                                         
bibliotheques, car la gestion graphique utilise des threads, 
et                                                           
il y a une autre fonction "thread" dans cette bibliotheque.

(*fin*)

qu'en pensez vous ? Avez vous une solution ?

Merci de votre collaboration, Laure