FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Yannick Aujourd'hui à 1:58

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Hier à 19:26

» Compilateur FBPano
par Mike Hier à 13:52

» un nouveau editeur panobasic
par Jean Claude Hier à 10:18

» Le compilateur.
par Pedro Alvarez Hier à 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Compteur mécanique

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
bignono

avatar

Nombre de messages : 1085
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Compteur mécanique   Ven 24 Jan 2014 - 11:16

Bonjour à tous,  Smile 
Vous connaissez tous les compteurs kilométriques des voitures, je parle des anciens, pas les nouveaux à affichage digitale ou numérique. Ces espèces de compteurs à roues dentées qui tournent inexorablement. On les trouvait aussi sur les vieux compteurs EDF, et il y en a encore sur les compteurs d'eau ou de gaz.
J'ai essayé de reproduire ce genre de compteur avec panoramic. Pas évident!
Voici :
Code:
label tourne
dim u,d,c,m,dm

init()

timer 99 : timer_interval 99,10 : on_timer 99,tourne
END

tourne:
   timer_off 99
   if scancode=27 then terminate
   for u=50 to 59
      top u,top(u)-4
      if top(u)=-36 then top u,324
      if caption$(u)=" 9" and top(u)<4
         for d=40 to 49
            top d,top(d)-4
            if top(d)=-36 then top d,324
            if caption$(d)=" 9" and top(d)<4
               for c=30 to 39
                  top c,top(c)-4
                  if top(c)=-36 then top c,324
                  if caption$(c)=" 9" and top(c)<4
                     for m=20 to 29
                        top m,top(m)-4
                        if top(m)=-36 then top m,324
                        if caption$(m)=" 9" and top(m)<4
                           for dm=10 to 19
                              top dm,top(dm)-4
                              if top(dm)=-36 then top dm,324
                           next dm
                        end_if
                     next m
                  end_if
               next c
            end_if
         next d
      end_if
   next u
   timer_on 99
return

sub init()

   dim_local h,i,j
  
'   border_small 0
   left 0,(screen_x/2)-(width(0)/2)
'   caption 0,"Compteur"
   hide 0

   for i=1 to 5
      form i
      border_hide i
      color i,0,0,0
      width i,49
      height i,60
      left i,left(0)+(i*50)+130
      top i,(height(0)/2)-(height(i)/2)

      h=0

      for j=(i*10) to (i*10)+9
         alpha j
         parent j,i
         top j,h*36
         font_name j,"Arial Black"
         font_color j,255,255,255
         font_bold j
         font_size j,24
         caption j," "+str$(h)
         h=h+1
      next j

   next i

end_sub
Appuyez sur ESC pour arrêter le programme.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1085
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Compteur mécanique   Ven 24 Jan 2014 - 11:19

Voici une autre manière de s'en servir:
Code:
label tourne
dim u,i

init()
u=50
button 99:caption 99,"CLIC = +1":on_click 99,tourne
left 99,(width(0)/2)-(width(99)/2)
END

tourne:
  for i= 1 to 9
      for u=50 to 59
        top u,top(u)-4
        if top(u)=-36 then top u,324
        if caption$(u)=" 9" and top(u)<4 then tourne()
      next u
      wait 10
  next i
return

sub tourne()
  dim_local d,c,m,dm
        for d=40 to 49
            top d,top(d)-4
            if top(d)=-36 then top d,324
            if caption$(d)=" 9" and top(d)<4
              for c=30 to 39
                  top c,top(c)-4
                  if top(c)=-36 then top c,324
                  if caption$(c)=" 9" and top(c)<4
                    for m=20 to 29
                        top m,top(m)-4
                        if top(m)=-36 then top m,324
                        if caption$(m)=" 9" and top(m)<4
                          for dm=10 to 19
                              top dm,top(dm)-4
                              if top(dm)=-36 then top dm,324
                          next dm
                        end_if
                    next m
                  end_if
              next c
            end_if
        next d
end_sub

sub init()

  dim_local h,i,j
 
  border_small 0
  left 0,(screen_x/2)-(width(0)/2)
  caption 0,"Compteur"

  for i=1 to 5
      form i
      border_hide i
      color i,0,0,0
      width i,49
      height i,60
      left i,left(0)+(i*50)+130
      top i,(height(0)/2)-(height(i)/2)

      h=0

      for j=(i*10) to (i*10)+9
        alpha j
        parent j,i
        top j,h*36
        font_name j,"Arial Black"
        font_color j,255,255,255
        font_bold j
        font_size j,24
        caption j," "+str$(h)
        h=h+1
      next j

  next i

  top 0,top(5)+height(5)+5
  height 0,75
  width 0,250
  left 0,(screen_x/2)-(width(0)/2)+5
end_sub

Je pense que l'on pourrait même en faire une horloge!
A+  Wink Wink Wink 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compteur mécanique   Ven 24 Jan 2014 - 13:02

ça me rappelle ma vieille SIMCA 1100

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7962
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 24 Jan 2014 - 18:51

Très joli Bignono, j' espère seulement que tes compteurs tournent moins vite que ton premier code. Laughing 

Une idée pour les fans de jeux de casino, cela peut servir pour un jeu de "Bandit-manchot".... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Compteur mécanique   Ven 24 Jan 2014 - 20:01

Une petite amélioration.
Code:
label tourne,vitesse
dim u,d,c,m,dm,me$,vit%
gosub vitesse
init()
timer 99 : timer_interval 99,vit% : on_timer 99,tourne

END

vitesse:
hide 0
me$=message_input$("0","entrez la vitesse (entre 1 et 100)","50")
if numeric(me$)=0 then goto vitesse
if vit%>100 then goto vitesse
vit%=val(me$):vit%=100-vit%
if vit%<=0 then vit%=1
return

tourne:
  timer_off 99
  if scancode=27 then terminate
  for u=50 to 59
      top u,top(u)-4
      if top(u)=-36 then top u,324
      if caption$(u)=" 9" and top(u)<4
        for d=40 to 49
            top d,top(d)-4
            if top(d)=-36 then top d,324
            if caption$(d)=" 9" and top(d)<4
              for c=30 to 39
                  top c,top(c)-4
                  if top(c)=-36 then top c,324
                  if caption$(c)=" 9" and top(c)<4
                    for m=20 to 29
                        top m,top(m)-4
                        if top(m)=-36 then top m,324
                        if caption$(m)=" 9" and top(m)<4
                          for dm=10 to 19
                              top dm,top(dm)-4
                              if top(dm)=-36 then top dm,324
                          next dm
                        end_if
                    next m
                  end_if
              next c
            end_if
        next d
      end_if
  next u
  timer_on 99
return

sub init()

  dim_local h,i,j

'  border_small 0
  left 0,(screen_x/2)-(width(0)/2)
'  caption 0,"Compteur"
  hide 0

  for i=1 to 5
      form i
      border_hide i
      color i,0,0,0
      width i,49
      height i,45
      left i,left(0)+(i*50)+130
      top i,(height(0)/2)-(height(i)/2)

      h=0

      for j=(i*10) to (i*10)+9
        alpha j
        parent j,i
        top j,h*36
        font_name j,"Arial Black"
        font_color j,255,0,255
        font_bold j
        font_size j,24
        caption j," "+str$(h)
        h=h+1
      next j

  next i

end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compteur mécanique   Ven 24 Jan 2014 - 21:20

Comme je n’aime pas les GOSUB et surtout les GOTO, voici ma modification du code de Jean Claude (belle rime, non ? le code de Jean Claude)

Code:
label tourne
dim u,d,c,m,dm,me$,vit%
vitesse()
init()
timer 99 : timer_interval 99,vit% : on_timer 99,tourne

END
rem ============================================================================
SUB vitesse()
    hide 0
    repeat
        repeat
             me$=message_input$("Entrez la vitesse","(entre 1 et 100)","50")
        until numeric(me$) > 0
    until (val(me$) > 0) and  (val(me$) <= 100)
    vit% = val(me$) : vit% = 100 - vit%
END_SUB
rem ============================================================================
tourne:
  timer_off 99
  if scancode=27 then terminate
  for u=50 to 59
      top u,top(u)-4
      if top(u)=-36 then top u,324
      if caption$(u)=" 9" and top(u)<4
        for d=40 to 49
            top d,top(d)-4
            if top(d)=-36 then top d,324
            if caption$(d)=" 9" and top(d)<4
              for c=30 to 39
                  top c,top(c)-4
                  if top(c)=-36 then top c,324
                  if caption$(c)=" 9" and top(c)<4
                    for m=20 to 29
                        top m,top(m)-4
                        if top(m)=-36 then top m,324
                        if caption$(m)=" 9" and top(m)<4
                          for dm=10 to 19
                              top dm,top(dm)-4
                              if top(dm)=-36 then top dm,324
                          next dm
                        end_if
                    next m
                  end_if
              next c
            end_if
        next d
      end_if
  next u
  timer_on 99
return

sub init()

  dim_local h,i,j

'  border_small 0
  left 0,(screen_x/2)-(width(0)/2)
'  caption 0,"Compteur"
  hide 0

  for i=1 to 5
      form i
      border_hide i
      color i,0,0,0
      width i,49
      height i,45
      left i,left(0)+(i*50)+130
      top i,(height(0)/2)-(height(i)/2)

      h=0

      for j=(i*10) to (i*10)+9
        alpha j
        parent j,i
        top j,h*36
        font_name j,"Arial Black"
        font_color j,255,0,255
        font_bold j
        font_size j,24
        caption j," "+str$(h)
        h=h+1
      next j

  next i

end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Compteur mécanique   Ven 24 Jan 2014 - 22:23

C'est clair, c'est bien plus propre comme code.

Je dois dire que je l'ai fait vite fait (et mal fait)

A+

Au passage: la rime  Question Question Question Question Question 
Est-ce une question d'accent  Question 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Compteur mécanique   Sam 25 Jan 2014 - 3:52

Très joli Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1085
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Compteur mécanique   Sam 25 Jan 2014 - 9:29

Oui Ygeronimi, je cherche le moyen de pouvoir réaliser un bandit manchot dans l'avenir. Donc j'explore des pistes. Au début j'ai voulu utiliser les nouveaux objets "panel" à la place des "form". mais c'était beaucoup plus lent.
A+ Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Compteur mécanique   

Revenir en haut Aller en bas
 
Compteur mécanique
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» compteur php dans page générée par e-anim
» Compteur à rebours
» Signalisation mécanique.
» [Tjaak School] Créer un compteur de durée de vie
» compteur [RESOLU]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: