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
» PANORAMIC V 1
sub, timer et boucle repeat... Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
sub, timer et boucle repeat... Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
sub, timer et boucle repeat... Emptypar Marc Hier à 12:14

» @Jack
sub, timer et boucle repeat... Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
sub, timer et boucle repeat... Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
sub, timer et boucle repeat... Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
sub, timer et boucle repeat... Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
sub, timer et boucle repeat... Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
sub, timer et boucle repeat... Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
sub, timer et boucle repeat... Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
sub, timer et boucle repeat... Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
sub, timer et boucle repeat... Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
sub, timer et boucle repeat... Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
sub, timer et boucle repeat... Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
sub, timer et boucle repeat... Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 sub, timer et boucle repeat...

Aller en bas 
4 participants
AuteurMessage
bignono

bignono


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

sub, timer et boucle repeat... Empty
MessageSujet: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 12:31

Bonjour à tous Smile
Je travaille sur un petit programme dans lequel j'éprouve de grandes difficultés. Un bout de code vaut mieux qu'un long discours:
Code:
dim cx,cy,cz,px,py,pz,i,t,n%
label clr1,clr2,prog
full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
t=1000:n%=6

3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

3d_text 11,""
cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
cam_position cx,cy,cz:point_position px,py,pz

' ******************************************************************************
' choix():' <== ICI LE PROGRAMME NE PLANTE PAS, MAIS MES OBJETS SONT SANS COULEUR ET NON ANIMÉS.
' ******************************************************************************

timer 6:timer_interval 6,t  :on_timer 6,clr1
timer 7:timer_interval 7,200:timer_off 7:on_timer 7,clr2

' ******************************************************************************
choix():' <== ICI LE PROGRAMME PLANTE MAIS MES OBJETS SONT COLORÉS ET ANIMÉS
' ******************************************************************************

timer 8:timer_interval 8,1:on_timer 8,prog: ' une fois le choix fait, le programme démarre
end

prog:
timer_off 8
print_locate 10,10:print t
timer_on 8
return

sub choix()
selection()
repeat
select scancode
case 37:' flèche gauche
n%=n%-1:if n%<6 then n%=9
selection()
case 39:' flèche droite
n%=n%+1:if n%>9 then n%=6
selection()
end_select
until scancode=13 or scancode=32
end_sub

sub selection()
dim_local a$,x,ii%
data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >",-2.5,9
for ii%=6 to 9:3d_hide ii%:next ii%
restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
pause 200
end_sub

clr1:
timer_off 6:3d_color n%,200,0,0:t=int(rnd(2000))+1000:timer_interval 6,t:timer_on 7:return

clr2:
timer_off 7:3d_color n%,0,0,200:timer_on 6:return
Dans ce code, je voudrais que la sub choix() soit executé avec mon animation flash couleurs bleu/rouge, mais ça plante.
Avant les 2 timers 6 et 7, ça fonctionne mais mes objets sont noirs et sans animations.
Je ne comprends pas pourquoi et je n'arrive pas à trouver une solution de contournement.
Si quelqu'un peut m'aider...
A+ Wink Wink Wink
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

sub, timer et boucle repeat... Empty
MessageSujet: re   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 14:24

Je ne sais pas d'où vient ton problème
et je pense que cela dépasse mes compétences.
Mais il est arrivé à faire planter l'éditeur Panoramic
lol!
J'ai dû redémarrer mon ordi pour que tout rentre dans l'ordre. Suspect
Revenir en haut Aller en bas
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 15:37

Bonjour,
Je poste maintenant car ce n'est pas fini, mais je dois partir, et si dès fois tu vois un problème par rapport à ce que j'ai mis.
Je me demande si il n'y a pas un problème de structure. En effet tu appel un sub choix() avec une pause de 200, et tout de suite après tu mets un timer pour lancer le programme.
J'avais mis t%(10) pour voir si un timer est actif ou non, en le mettant à jour. n'est pas mis à 1 car ensuite j'ai mis timer_off_all.

En y réfléchissant un peu je pense que cela permet de donner une piste.
J'ai refais une indentation, car je ne comprenais pas.
Code:

 dim cx,cy,cz,px,py,pz,i,t,n%  , t%(10)
 label clr1,clr2,prog
 full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
 t=1000:n%=6

 3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

 3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
 3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
 3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
 3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

 3d_text 11,""
 cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
 cam_position cx,cy,cz:point_position px,py,pz

 ' ******************************************************************************
 ' choix():' <== ICI LE PROGRAMME NE PLANTE PAS, MAIS MES OBJETS SONT SANS COULEUR ET NON ANIMÉS.
 ' ******************************************************************************

 timer 6:timer_interval 6,t  :on_timer 6,clr1  :t%(6)=0
 timer 7:timer_interval 7,200:timer_off 7:on_timer 7,clr2:timer_off_all

 ' ******************************************************************************

 choix():' <== ICI LE PROGRAMME PLANTE MAIS MES OBJETS SONT COLORÉS ET ANIMÉS
 ' ******************************************************************************
 message "on lit timer 8"
 ' il y a une pause de 200 dans selection, donc .... Y a-t-il une mauvaise conception
 timer 8:timer_interval 8,2:on_timer 8,prog: ' une fois le choix fait, le programme démarre
 end

prog:
  timer_off 8
  print_locate 10,10:print t

return

sub choix()
  timer_off_all
  selection()

  repeat
    select scancode
        case 37:' flèche gauche
        n%=n%-1:if n%<6 then n%=9
        selection()
        case 39:' flèche droite
        n%=n%+1:if n%>9 then n%=6
        timer_off_all
        selection()
    end_select
  until scancode=13 or scancode=32
  if t%(6)=1 then timer_on 6
  if t%(7)=1 then timer_on 7
end_sub

sub selection()
  dim_local a$,x,ii%
  data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >",-2.5,9
  for ii%=6 to 9:3d_hide ii%:next ii%
  restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
  3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
  pause 200
end_sub

clr1:
  caption 0,"timer_on 6"
  timer_off 6:t%(6)=0:3d_color n%,200,0,0:t=int(rnd(2000))+1000:timer_interval 6,t:timer_on 7: t%(7)=1 :return

  clr2:
  caption 0,"timer 7"
  timer_off 7:t%(7)=0:3d_color n%,0,0,200:timer_on 6:t%(6)=1:return

Je suis désolé de ne pas pouvoir aller jusqu'au bout.
Revenir en haut Aller en bas
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 17:23

Une solution qui marche, et sans timer:
Code:

 dim cx,cy,cz,px,py,pz,i,t,n%  , t%(10) , c%
 label clr1,clr2, selection_  , choix
 full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
 t=1000:n%=6

 3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

 3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
 3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
 3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
 3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

 3d_text 11,""
 cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
 cam_position cx,cy,cz:point_position px,py,pz

 ' ******************************************************************************
 ' choix():' <== ICI LE PROGRAMME NE PLANTE PAS, MAIS MES OBJETS SONT SANS COULEUR ET NON ANIMÉS.
 ' ******************************************************************************

 ' il y a une pause de 200 dans selection, donc .... Y a-t-il une mauvaise conception
' timer 8:timer_interval 8,2:on_timer 8,prog:timer_off 8: ' une fois le choix fait, le programme démarre
 ' ******************************************************************************

gosub choix:' <== ICI LE PROGRAMME PLANTE MAIS MES OBJETS SONT COLORÉS ET ANIMÉS
 ' ******************************************************************************
 
 ' timer_on 8
 end

return

choix:
  selection()

  repeat
    if c%<0 then gosub clr1 : else : gosub clr2
    c%=c%+1:pause 10:if c%=20 then c%= -20
    select scancode
   
        case 37:' flèche gauche
        n%=n%-1:if n%<6 then n%=9
        gosub selection_
        case 39:' flèche droite
        n%=n%+1:if n%>9 then n%=6
        timer_off_all
        gosub selection_
    end_select
  until scancode=13 or scancode=32
return
' ..................................

selection_:
    caption 0,"selection"
    selection()
    caption 0,"retour"
return

sub selection()

  dim_local a$,x,ii%
  data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >",-2.5,9
  for ii%=6 to 9:3d_hide ii%:next ii%
  restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
  3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
  pause 200
end_sub

clr1:
  3d_color n%,200,0,0:t=int(rnd(2000))+1000 :return

clr2:
  3d_color n%,0,0,200:return
Revenir en haut Aller en bas
papydall

papydall


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

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 18:17

Voici ma solution qui ressemble fortement à celle de Cosmos70
Code:
dim cx,cy,cz,px,py,pz,i,t,n%,c%
 full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
 t=1000:n%=6

 3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

 3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
 3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
 3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
 3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

 3d_text 11,""
 cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
 cam_position cx,cy,cz:point_position px,py,pz

 Choix() : message "OK"
 end
' ******************************************************************************
SUB choix()
    selection()
    repeat
      if c% < 0 then  clr1() : else : clr2()
      c% = c% + 1 : wait 30 : if c% = 20 then c% = -20
      select scancode
          case 37 : n% = n% - 1 : if n% < 6 then n% = 9
                    selection()
          case 39 : n% = n% + 1 : if n% > 9 then n% = 6
                    selection()
      end_select
    until scancode = 13 or scancode = 32
END_SUB
' ******************************************************************************
sub selection()
  dim_local a$,x,ii%
  data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >" ,-2.5,9
  for ii%=6 to 9:3d_hide ii%:next ii%
  restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
  3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
  pause 200
end_sub
' ******************************************************************************
SUB clr1()
    3d_color n%,200,0,0 : t = int(rnd(2000))+1000
END_SUB
' ******************************************************************************
SUB clr2()
    3d_color n%,0,0,200
END_SUB
' ******************************************************************************
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 18:38

Bien, je reviens à la charge, non pas pour remettre en doute la solution de Papydall, mais pour évoquer un problème.
D'ailleurs si j'ai regardé ce programme, car j'avais le même problème avec Pagiciel, et j'ai voulu voir de près.

Tant que j'ai essayé de gardé sub choix(), à chaque fois quoique je fasse, j'avais le message d'erreur de repeat.
Lorsque que j'ai transformé sub choix() en sous-programme: choix avec return, cette erreur s'est arrêtée. Il y a une mauvaise interaction des timers avec les sub(). Je l'ai déjà constaté plusieurs fois.

Une fois débarrassé des timer dans ce cas, certains sous-programmes, peuvent être transformés en procédures.
Revenir en haut Aller en bas
bignono

bignono


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

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 19:44

Bonsoir cosmos et papydall,
Je viens de rentrer et je vois donc vos messages. Effectivement vos solutions fonctionnent, mais ne me conviennent pas! En effet, ces timers sont indispensables car ils appellent des animations bien précises de manières plus ou moins régulières. C'est pourquoi il y a un timer_interval avec une valeur aléatoire "t" dans mon programme exemple. Mon vrai programme comporte en fait pour le momment 9 timers dont un commande le début du programme (jeu), et les autres appellent des animations ou actions bien précises pendant le déroulement du jeu. Je devrais même encore créer d'autres timer pour d'autres animations et actions.
Je pense que cosmos a mis le doigt sur ce que je crois être un problème avec les sub!
Citation :
D'ailleurs si j'ai regardé ce programme, car j'avais le même problème avec Pagiciel, et j'ai voulu voir de près.
Citation :
Lorsque que j'ai transformé sub choix() en sous-programme: choix avec return, cette erreur s'est arrêtée. Il y a une mauvaise interaction des timers avec les sub(). Je l'ai déjà constaté plusieurs fois.
Donc pour mon programme, je crois que je vais abandonner toutes les sub et me remettre uniquement à programmer en mode évènementiel pour ne plus avoir ce problème. C'est dommage, car les sub me faisait gagner énormément de lignes de programme!
Merci, et à + Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 21:06

@Bignono:

Les SUB ne sont pas en cause !

Le problème vient de l'interruption d'une boucle REPEAT par un timer. Et c'est un problème dont Jack devrait s'occuper. J'ai simplement remplacé ta boucle REPEAT_UNTIL par un label, un IF et un GOTO. Et ça marche. comme quoi, même avec les SUB, les timers fonctionnent. Voici le code:
Code:
dim cx,cy,cz,px,py,pz,i,t,n%
label clr1,clr2,prog
label klaus1
full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
t=1000:n%=6

3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

3d_text 11,""
cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
cam_position cx,cy,cz:point_position px,py,pz

' ******************************************************************************
' choix():' <== ICI LE PROGRAMME NE PLANTE PAS, MAIS MES OBJETS SONT SANS COULEUR ET NON ANIMÉS.
' ******************************************************************************

timer 6:timer_interval 6,t  :on_timer 6,clr1
timer 7:timer_interval 7,200:timer_off 7:on_timer 7,clr2

' ******************************************************************************
choix():' <== ICI LE PROGRAMME PLANTE MAIS MES OBJETS SONT COLORÉS ET ANIMÉS
' ******************************************************************************

timer 8:timer_interval 8,1:on_timer 8,prog: ' une fois le choix fait, le programme démarre
end

prog:
timer_off 8
print_locate 10,10:print t
timer_on 8
return

sub choix()
selection()
' repeat
klaus1:
select scancode
case 37:' flèche gauche
n%=n%-1:if n%<6 then n%=9
selection()
case 39:' flèche droite
n%=n%+1:if n%>9 then n%=6
selection()
end_select
' until scancode=13 or scancode=32
if scancode=13 then exit_sub
if scancode=32 then exit_sub
goto klaus1
end_sub

sub selection()
dim_local a$,x,ii%
data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >",-2.5,9
for ii%=6 to 9:3d_hide ii%:next ii%
restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
pause 200
end_sub

clr1:
timer_off 6:3d_color n%,200,0,0:t=int(rnd(2000))+1000:timer_interval 6,t:timer_on 7:return

clr2:
timer_off 7:3d_color n%,0,0,200:timer_on 6:return

EDIT

Je m'y suis mis, car j'utilise des timers avec des SUB sans problème, et ton histoire m'a intrigué. Donc, maintenant, la balle est dans le camp de Jack. Je n'ose pas encore qualifier cela de bug, mais c'est anormal qu'un évènement ne puisse pas interrompre une boucle repeat, alors qu'une boucle programmée de façon classique ne pose pas de problème. Il y a bien un problème avec REPEAT.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
bignono

bignono


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

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 23:29

Bonsoir Klaus,
Oui effectivement c'est la boucle repeat qui ne va pas avec le timer! Tu as raison Klaus, mais moi je pensais que c'était les sub comme celle-ci sont récentes dans panoramic. Bon j'ai supprimé toutes les boucles repeat et while de mon programme (jeu), ça a l'air de fonctionner sauf que maintenant j'ai plein d'accès violiation quand mon programme s'achève. Je vais chercher...
A+ Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 23:33

As-tu des RETURN dans des SUB (au lieu des EXIT_SUB) ? Chez moi, les violations d'accès viennent souvent de là...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
bignono

bignono


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

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyDim 17 Fév 2013 - 23:45

Non, je n'ai pas de return dans mes sub.
Revenir en haut Aller en bas
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 7:23

Il y a quelque chose de bizarre. J'ai pas vérifié si par rapport à Klaus, j'ai modifié repeat par if comme dit Klaus:
Spoiler:

La plupart du temps, lorsque je lance le programme, j'ai un message d'erreur:
sub, timer et boucle repeat... Mess_e10
et j'ai l'éditeur avec la ligne d'erreur. Je reprends le jeu et cela marche avec bien du mal pour les couleur au début. Puis je ferme le programme. En fermant le message d'erreur, je me retrouve de nouveau avec le programme avec les couleurs et celui là marche normalement. J'ai bien reproduit 10 fois le phénomène.
Lorsque j'ai le message d'erreur, j'ai 2 programmes de lancé. Celui qui marche mal en premier temps, puis une fois fermé, le second qui marche bien.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 9:22

J'ai lancé ton code tel quel. Cela marche parfaitement. Une vingtaine de lancements et pas de problème.

Ceci dit, je rencontre ce problème de temps en temps, avec n'importe quel programme source Panoramic, en réalité. Plus fréquemment juste après le premier lancement de Panoramic, mais là encore, ce n'est pas systématique.

J'ai l'impression que la suite des évènements est celle-ci:
1 - on clique sur le bouton de lancement (l'éclair)
2 - Panoramic Editor crée un fichier Panoramic.exe , comme si l'on avait demandé de créer un EXE, sauf que dans ce cas, le fichier va dans un dossier temporaire
3 - Panoramic Editor lance l'exécution de ce fichier qu'il vient de créer
4 - Panoramic Editor attent un petit moment et essaye de récupérer le handle du process qu'il vient de lancer (ou croit avoir lancé). Ce handle servira à stopper le process lorsqu'on clique sur le menu Stop.

Maintenant, deux problèmes distincts peuvent se produire:
A - Panoramic Editor a depuis toujours un problème avec la gestioin du répertoire par défaut, au début de son lancement. La preuve: lorsque je redémarre Wndows, puis lance PAnoramic Editor, puis charge un programme quelconque utilisant une DLL, puis je lance ce programme, j'ai infailliblement un message disant qu'il ne peut pas charger la DLL. Le stoppe le programme et relance immédiatement, et tout se passe bien. Et je cherche bien la DLL dans le dossier par défaut. Le même problème se manifeste peut-être lorsqu'il essaie de lancer Panoramic.exe en phase (3)...

B - En fonction de la charge momentanée du système, le process lancé en (3) n'est pas encore prêt dans Windows lorsque Panoramic Editoressaie d'avoir le handle en (4). Et il affiche ce fameux message. Or, le processus est bien lancé et s'appelle bien Panoramic.exe. Cela m'arrive souvent.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 9:44

Oui mais ce qui est curieux, c'est qu'avec un seul appel, j'ai 2 lancements lorsqu'il y a une erreur. Quand au message d'erreur, c'est régulier depuis quelque temps. Aussi pour ce seul message je ne réagis plus. La nouveauté, c'est les 2 appels chez moi (W7).
Revenir en haut Aller en bas
papydall

papydall


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

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 11:16

Salut tout le monde.

Je crois aussi que le problème vient de l’instruction REPEAT.
Avec IF comme l’a fait Cosmos70 ça marche.
Ça marche aussi avec WHILE
Code:
dim cx,cy,cz,px,py,pz,i,t,n%
 label clr1,clr2,prog
 full_space 0:scene3d 1:top 1,30:width 1,width(0)-16:height 1,height(0)-68:light_position 0,0,-5
 t=1000:n%=6

 3d_plane 2:3d_x_rotate 2,90:3d_scale 2,10000,10000,1:3d_color 2,0,100,0

 3D_CYLINDER 6,4,1,1:3d_position 6,0,2.2,0:3d_scale 6,0.75,1,0.5
 3D_sphere 7,1.5:3d_position 7,0,1.5,0:3d_x_rotate 7,180:3d_hide 7
 3D_cube 8,2:3d_position 8,0,1.25,0:3d_hide 8
 3D_cone 9,4,1:3d_position 9,0,2,0:3d_hide 9

 3d_text 11,""
 cx=0:cy=1.7:cz=5:px=0:py=1.7:pz=0
 cam_position cx,cy,cz:point_position px,py,pz

 timer 6:timer_interval 6,t  :on_timer 6,clr1
 timer 7:timer_interval 7,200:timer_off 7:on_timer 7,clr2

 choix()
 timer 8:timer_interval 8,1:on_timer 8,prog: ' une fois le choix fait, le programme démarre
 end
' -----------------------------------------------------------------------------
prog:
  timer_off 8
  print_locate 10,10:print t
  timer_on 8
return
' -----------------------------------------------------------------------------
sub choix()
  selection()
  while scancode <> 13 and scancode <> 32
    select scancode
      case 37:' flèche gauche
      n%=n%-1:if n%<6 then n%=9
      selection()
      case 39:' flèche droite
      n%=n%+1:if n%>9 then n%=6
      selection()
    end_select
' la ligne suivante n'a plus sa raison d'être
'    if scancode = 13 or scancode = 32 then exit_sub
  end_while
end_sub
' -----------------------------------------------------------------------------
sub selection()
  dim_local a$,x,ii%
  data "<CYLINDRES>",-3.25,6,"< SPHERES >",-3.3,7,"< CUBES >",-2.625,8,"< CONES >",-2.5,9
  for ii%=6 to 9:3d_hide ii%:next ii%
  restore:for ii%=1 to n%-5:read a$:read x:read n%:next ii%
  3d_show n%:3d_text_change 11,a$:3d_position 11,x,5,0:3d_color 11,rnd(n%*10*abs(x)),rnd(n%*10*abs(x)),rnd(n%*10*abs(x))
  pause 200
end_sub

clr1:
  timer_off 6:3d_color n%,200,0,0:t=int(rnd(2000))+1000:timer_interval 6,t:timer_on 7:return

  clr2:
  timer_off 7:3d_color n%,0,0,200:timer_on 6:return

@Cosmos 70

Je rencontre souvent le message d’erreur que tu as mentionné, parfois aussi une violation de la mémoire sans raison apparente ! .
Je valide le message, je relance le programme et oh magie de l’incompréhensible tout marche à merveille !

Cette fois, ni ton code ni le mien ne m’ont honoré de ces message d’erreurs !
Allez savoir pourquoi.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 19:14

Apparemment j'ai l'impression d'être le seul à avoir un double lancement du programme en cas d'erreur au départ.
J'ai généré une animation qui montre ce qui se passe pour montrer que c'est réel, et non sorti de mon imagination
Voir sur le Webdav:
panoramic@cosmos70
MDP: panoramic123
edit: fichier: doubleRUN en cas d'erreur.swf
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 20:58

Une question bête, Cosmos70, et ne le prends pas mal. C'est juste pour y voir plus clair.

Moi aussi, j'ai quelque fois des "double lancements", et je peux les provoquer à volonté avec n'importe quel programme, y compris le tien !

C'est parce que j'ai une souris dont le clic droit fait souvent de faux contacts, déclenchant ainsi un double-clic non intentionnel. Et si tu fais un double_clic sur l'éclair (Run), cela provoque exactement cela, et même des violations d'accès et autres joyeusetés.

Pour exclure ce problème, essaie de lancer ton programme en appuyant 1 fois sur la touche F9 au lieu d'utiliser le clic sur la flèche. Cela paraît bête, et je me plante probablement, mais en ce qui me concerne, c'est du vécu, et je peux le provoquer à volonté ! Essaie un vrai double-clic sur l'éclair avec un programme quelconque...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... EmptyLun 18 Fév 2013 - 21:42

Citation :
Une question bête, Cosmos70, et ne le prends pas mal
Pour quelle raison je le prendrais mal? Il n'y a pas de problème.
Pour la démo, j'ai utilisé la souris pour que ce soit visuel, mais avec F9, je viens encore de le faire, j'ai le même résultat.

A propos, je fais le réglage du simple clic pour lancer un programme. La souris ici n'a rien à voir.
Revenir en haut Aller en bas
Contenu sponsorisé





sub, timer et boucle repeat... Empty
MessageSujet: Re: sub, timer et boucle repeat...   sub, timer et boucle repeat... Empty

Revenir en haut Aller en bas
 
sub, timer et boucle repeat...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» IF Timer on or off ?
» Erreur REPEAT
» Timer ?
» Problème de Timer.
» timer info

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: