FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Vous avez dit bizarre ? Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Vous avez dit bizarre ? Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Vous avez dit bizarre ? Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Vous avez dit bizarre ? Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Vous avez dit bizarre ? Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Vous avez dit bizarre ? Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Vous avez dit bizarre ? Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Vous avez dit bizarre ? Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Vous avez dit bizarre ? Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Vous avez dit bizarre ? Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Vous avez dit bizarre ? Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Vous avez dit bizarre ? Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Vous avez dit bizarre ? Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Vous avez dit bizarre ? Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Vous avez dit bizarre ? Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -14%
Lave-linge hublot HOOVER HWP 10 kg (Induction, 1600 ...
Voir le deal
299.99 €

 

 Vous avez dit bizarre ?

Aller en bas 
3 participants
AuteurMessage
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Vous avez dit bizarre ? Empty
MessageSujet: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyLun 5 Sep 2022 - 20:35

En programmant avec un timer, j'ai trouvé un truc étrange :
D'abord, j'utilise le timer à 1000 :
(pour qu'il se déclenche toutes les secondes)

Code:
rem ' Essai timer 1000
  dim V1M% , V2M%
  V2M%=60
  label clic , time

  progress_bar 410
      left 410,100
      top 410,50
      width 410,150
      height 410,30
      min 410,0
      max 410,100
     
  button 450
      left 450,100
      top 450,150
      width 450,150
      caption 450,"Commencer"
      on_click 450,clic
     
  timer 550 : rem Pour faire marcher la barre de progression
      timer_interval 550,1000
      on_timer 550,time
      timer_off 550
     
end

clic:
  timer_on 550
return

time: : rem Mise en action du timer
  if V2M%>0
      V1M%=V1M%+1
        position 410,(V1M%/V2M%)*100
        if V1M%=>V2M%
            timer_off 550
            position 410,0
            beep
        end_if
  else
      timer_off 550
  end_if
return

Le progress-bar est programmé pour se terminer en 60 secondes.
Je chronomètre : il met 61 secondes (environ)
Cette différence est peut-être déjà significative ?

Pour des raisons d'utilisation différente du timer,
je le règle à 50 (donc 20 fois par seconde)
(je divise donc par 20 pour obtenir le même résultat)
Voir le code ci-dessous :

Code:
rem ' Essai timer 50
  dim V1M% , V2M%
  V2M%=60
  label clic , time

  progress_bar 410
      left 410,100
      top 410,50
      width 410,150
      height 410,30
      min 410,0
      max 410,100
     
  button 450
      left 450,100
      top 450,150
      width 450,150
      caption 450,"Commencer"
      on_click 450,clic
     
  timer 550 : rem Pour faire marcher la barre de progression
      timer_interval 550,50
      on_timer 550,time
      timer_off 550
     
end

clic:
  timer_on 550
return

time: : rem Mise en action du timer
  if V2M%>0
      V1M%=V1M%+1
      if (V1M%/20)=int(V1M%/20) : ' =======================
        position 410,((V1M%/20)/V2M%)*100 : ' -----------------
'        V1M%=V1M%+4 : ' =========================
        if int(V1M%/20)=>V2M% : ' ---------------------
            timer_off 550
            position 410,0
            beep
        end_if
      end_if : ' ============================
  else
      timer_off 550
  end_if
return

les ligne roses simples indiquent des modifications
les lignes roses doubles ont été carrément ajoutées
Je chronomètre : il met 76 secondes pour faire la même chose !!!
J'ai fait une erreur de calcul ou le timer a un pet au casque ?
C'est une histoire à s'arracher les cheveux !
scratch
Alors j'ai trouvé un truc (mais alors vraiment un truc)
c'est d'ajouter : V1M%=V1M%+4 (ligne 37)
et ça se remet à fonctionner à peu près correctement.
Mais il faut quand même admettre que la méthode fait bricolo-bancal !
Alors, si quelqu'un y comprend quelque chose... et trouve mieux...
(Allez, place aux grosses poitures)
lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyLun 5 Sep 2022 - 21:22

Bonsoir Jjn4,

Bon c'est vrai que les timers dans Panoramic c'est pas ce qui se fait de mieux...

PS : j'ai édité le code à plusieurs reprise en incluant un calcul du temps à la fin. Il y a juste 1 minute !
J'ai mis la position sur un écart de 2 car cela donne un chiffre rond mais après tu peux choisir ton écart comme tu veux...

voila comment je procéderai :

Code:


rem ' Essai timer 1000
  
  dim t$
  label clic , time

  progress_bar 410
      left 410,100
      top 410,50
      width 410,150
      height 410,30
      min 410,0
      max 410,100
    
  button 450
      left 450,100
      top 450,150
      width 450,150
      caption 450,"Commencer"
      on_click 450,clic
    
  timer 550 : rem Pour faire marcher la barre de progression
      timer_interval 550,1200 : ' 60000/50 (60000 c'est les millisecondes et 50 c'est le nbre de positions du progress_bar)
      on_timer 550,time
      timer_off 550
    
end

clic:
  INACTIVE 450
  timer_on 550  
  t$=time$
return

time: : rem Mise en action du timer
  if position(410)=98
      timer_off 550
      position 410,0
      ACTIVE 450
      beep
      MESSAGE "Début : "+t$+CHR$(13)+"Fin : "+time$
  else
      position 410,position(410)+2  
  end_if
return
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyLun 5 Sep 2022 - 21:51

Bonsoir les Amis !

Si vous souhaitez de la précision, il est préférable d'utiliser NUMBER_TICKS au lieu d'un TIMER.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyMar 6 Sep 2022 - 14:40

Merci de vos réponses à tous.
@Minibug:
king
Solution astucieuse, mais j'ai besoin
que le timer reste à un intervalle de 50,
parce que j'en ai besoin pour autre chose.
C'est le nombre d'interruptions, qui doit varier,
pas leur durée :
pour une minute : 60 positions du progress-bar
pour une minute et demie : 90 positions du progresse_bar
etc... pirat
Je conserve donc ma solution bricolage
(qui, après tout, n'est pas si mal que ça)
alien
Mais je ne savais pas que le timer était aussi imprécis
(je pensais qu'il s'agissait d'un processus d'interruption
fonctionnant pile-poil, comme le papier à musique).
affraid
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyMar 6 Sep 2022 - 15:32

Bonjour Jjn4

Un intervalle de 50ms sur le timer me semble très court !
Ca veut dire que tu appelles 20 fois la routine par seconde...

Je ne sais pas ce que tu compte faire dans cet intervalle mais le traitement risque de rentrer un conflit avec l'appel répété du timer.
D'où peut être le problème rencontré...

Après comme le disait Marc tu peux calculer l'intervalle avec NUMBER_TICKS. A toi de voir...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyMar 6 Sep 2022 - 15:37

Il s'agit de faire qu'une image se balade,
et avec un intervalle de 1 seconde,
cela fait informatique des années 80...
D'où le 50 millième qui la fait se balader
d'1 pixel tous les 50/1000 de seconde.
geek
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyMar 6 Sep 2022 - 15:51

Voilà ce que je propose avec le fonction NUMBER_TICKS :

Code:



rem ' Essai timer 1000
 
  dim debut% , ecart% , t$
  label clic , time

  progress_bar 410
      left 410,100
      top 410,50
      width 410,150
      height 410,30
      min 410,0
      max 410,100
   
  button 450
      left 450,100
      top 450,150
      width 450,150
      caption 450,"Commencer"
      on_click 450,clic
   
  timer 550 : rem Pour faire marcher la barre de progression
      timer_interval 550,50
      on_timer 550,time
      timer_off 550
   
end

clic:
  INACTIVE 450
  timer_on 550 
  debut%=NUMBER_TICKS
return

time: : rem Mise en action du timer
  ecart%=(NUMBER_TICKS-debut%)/1000
  position 410,(ecart%/60*100) : CAPTION 0,ecart%

  if position(410)=100
      timer_off 550
      position 410,0
      ACTIVE 450
      beep
  end_if
return
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? EmptyMer 7 Sep 2022 - 10:52

Superbe, Minibug, et merci !
Là, effectivement, c'est vraiment pile poil !
Impeccable !
king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





Vous avez dit bizarre ? Empty
MessageSujet: Re: Vous avez dit bizarre ?   Vous avez dit bizarre ? Empty

Revenir en haut Aller en bas
 
Vous avez dit bizarre ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» @ Jack et Klaus - Bizarre Bizarre, vous avez dit bizarre ?!
» version instantanée du 5 décembre 2009
» Binaire vous avez dit binaire mais....
» Bizarre bizarre est-ce un bug du langage ? (résolu)
» Vous avez commencer où !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: