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
» Gestion d'un système client-serveur.
comment sortir de cette boucle Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
comment sortir de cette boucle Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
comment sortir de cette boucle Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
comment sortir de cette boucle Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
comment sortir de cette boucle Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
comment sortir de cette boucle Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
comment sortir de cette boucle Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
comment sortir de cette boucle Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
comment sortir de cette boucle Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
comment sortir de cette boucle Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
comment sortir de cette boucle Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
comment sortir de cette boucle Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
comment sortir de cette boucle Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
comment sortir de cette boucle Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
comment sortir de cette boucle Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 comment sortir de cette boucle

Aller en bas 
3 participants
AuteurMessage
RMont




Nombre de messages : 233
Age : 81
Localisation : charente maritime
Date d'inscription : 29/12/2008

comment sortir de cette boucle Empty
MessageSujet: comment sortir de cette boucle   comment sortir de cette boucle EmptyDim 2 Nov 2014 - 12:07


bonjour a tous.
je profite du mauvais temps pour reprendre mon code mais j'ai un problème.
je pensais pouvoir m'en tirer mais je n'arrive pas a sortir d'une boucle qui doit etre en ligne 15.
voici ce que je voudrai faire .
- je lance le code ; une ligne de 10 edits s'affiche.
- je rentre des chiffres de 1 a 10 dans n'importe quel ordre j'usqu'a ce que je rentre un 0
( zero).exp:2-6-4-3-0.
ce zero doit mettre fin a l'entrée de chiffres sur cette serie d'edits.
ce zero doit me permettre de passer au 1er edit de la série suivante.
la serie suivante se met bien en place  ,mais le focus revient en 1er serie alors que je voudrai qu'il se mette sur le 1er edit de la nouvelle serie.
ci-joint le code
Code:

' Une autre présentation du code:
 ' réponse de cosmos suite a post du 19/09/14


error_french
variables()
labels()

alpha 400
top 400,50:left 400,100:caption 400," Rajout de 7 points pour capacité au parcours"

for i%= 401 to 401+(nc%-1)
  edit i% : top i%,80 : left i%,a% : width i%,20
  a%=a%+35
  on_key_up i%,f1
next i%

set_focus 401

end
    ========================================
f1:
pts%=7
if key_up_code=13
  i% = number_key_up
    if numeric(text$(i%))=0 then return
      ch%=val(text$(i%))  :print "ch% = ";ch%  :' pour verif
      part%(ch%,0)=ch%
      if ch%=0 then gosub suite
      part%(ch%,1)=part%(ch%,1)+pts%
'      if part%(ch%,0)=0 then gosub suite   :' comment désactiver le set_focus (ligne 31) suite a part%(ch%,0)=0 ?
          set_focus i%+1
end_if
 return
' ========================
suite:
alpha 500
top 500,110:left 500,100:caption 500," Rajout de 10 points pour forme actuelle"
a%=100
for b%= 501 to 501+(nc%-1)
  edit b% : top b%,140 : left b%,a% : width b%,20
  a%=a%+35
  on_key_up b%,suite1
next b%

set_focus 501
suite1:
pts%=7
if key_up_code=13
  b% = number_key_up
    if numeric(text$(b%))=0 then return
      ch%=val(text$(b%))
      part%(ch%,0)=ch%
      part%(ch%,1)=part%(ch%,1)+pts%
'      if part%(ch%,0)=0 then gosub suite2
'          set_focus b%+1
end_if
 return
' ==========
sortie:
print "au revoir"
end
    ' ============= les variables ===============
sub variables()
  dim i% ,b%     :' variables de boucle
  dim nc% : nc%=10   :' pour l'instant
  dim a% : a%=100
  dim ch%
  dim part%(15,1)
  dim pts%
end_sub
    ' ============= les labels ================
sub labels()
  label f1
  label sortie
  label suite,suite1
end_sub


Revenir en haut Aller en bas
Klaus

Klaus


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

comment sortir de cette boucle Empty
MessageSujet: Re: comment sortir de cette boucle   comment sortir de cette boucle EmptyDim 2 Nov 2014 - 12:56

Tu fais comme ceci:
Code:

' Une autre présentation du code:
 ' réponse de cosmos suite a post du 19/09/14


error_french
variables()
labels()

alpha 400
top 400,50:left 400,100:caption 400," Rajout de 7 points pour capacité au parcours"

for i%= 401 to 401+(nc%-1)
  edit i% : top i%,80 : left i%,a% : width i%,20
  a%=a%+35
  on_key_up i%,f1
next i%

set_focus 401

end
    ========================================
f1:
pts%=7
if key_up_code=13
  i% = number_key_up
    if numeric(text$(i%))=0 then return
      ch%=val(text$(i%))  :print "ch% = ";ch%  :' pour verif
      part%(ch%,0)=ch%
      if ch%=0
        gosub suite
        return
      end_if
      part%(ch%,1)=part%(ch%,1)+pts%
'      if part%(ch%,0)=0 then gosub suite  :' comment désactiver le set_focus (ligne 31) suite a part%(ch%,0)=0 ?
          set_focus i%+1
end_if
 return
' ========================
suite:
alpha 500
top 500,110:left 500,100:caption 500," Rajout de 10 points pour forme actuelle"
a%=100
for b%= 501 to 501+(nc%-1)
  edit b% : top b%,140 : left b%,a% : width b%,20
  a%=a%+35
  on_key_up b%,suite1
next b%
set_focus 501
return

suite1:
pts%=7
if key_up_code=13
  b% = number_key_up
    if numeric(text$(b%))=0 then return
      ch%=val(text$(b%))
      part%(ch%,0)=ch%
      part%(ch%,1)=part%(ch%,1)+pts%
'      if part%(ch%,0)=0 then gosub suite2
'          set_focus b%+1
end_if
 return
' ==========
sortie:
print "au revoir"
end
    ' ============= les variables ===============
sub variables()
  dim i% ,b%    :' variables de boucle
  dim nc% : nc%=10  :' pour l'instant
  dim a% : a%=100
  dim ch%
  dim part%(15,1)
  dim pts%
end_sub
    ' ============= les labels ================
sub labels()
  label f1
  label sortie
  label suite,suite1
end_sub

Ton problème vient du fait que tu n'as pas tout à fait saisi la logique des évènements en Panoramic. Tu déclares bien un ON_KEY_UP sur chaque édit. Mais dans le traitement d'un évènement pour la première série de EDIT, tu crées la seconde (pas de problème), mais sous forme de GOSUB. Et donc, tu reviens dans le traitement de l'évèmenemt qui se poursuit et se termine en donnant le focus au EDIT de la première série...

Tu pourrais obtenir le même effet en remplaçant ton GOSUB simplement par un GOTO, à la ligne 30.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

comment sortir de cette boucle Empty
MessageSujet: Re: comment sortir de cette boucle   comment sortir de cette boucle EmptyDim 2 Nov 2014 - 14:30

Salut Rmont,

Effectivement Klaus a raison, il y a un problème de compréhension des événements sous Panoramic.
Je te rassure, j'ai (moi-même) galéré, longtemps, avant de maîtriser.

Pour te simplifier, et empêcher toute erreur: Tu dois (d'office), faire suivre chaque nouveau LABEL par RETURN.
Exemple:
Code:
Commence:
' le code -----
return
Cette méthode est la plus sure pour t'éviter les problèmes d'événement(s).


Autre chose:
Il faut que tu fasses une SUB spécialement pour déclarer les objets, car dans ton code la création de l'ALPHA 500 est mal placée et déclenche une erreur (tentative de créer 2 fois le même objet).
(voir l'exemple ci-dessous)

Ensuite:
il faut que tu prévois que l'utilisateur de ton programme peut entrer des valeurs trop grandes dans les édits.
Regarde ce code et vois comment j'empêche l'utilisateurs de saisir une valeur>15 (suit la variable max_ch%).

Code:
' Une autre présentation du code:
 ' réponse de cosmos suite a post du 19/09/14


error_french
variables()
labels()
objets():' pour éviter de déclarer plusieurs fois le même objetnumber_key_up

set_focus 401

end
    ========================================
f1:
pts%=7
if key_up_code=13
  i% = number_key_up
    if numeric(text$(i%))=0 then return
      ch%=val(text$(i%))
  ' Controle du maximum autorisé pour la saisie de ch%
      IF ch%>max_ch%
    ' c'est pas bon: message d'information, éffacement de la saisie, et attendre nouvelle saisie
         message "Maximun autorisé: "+str$(max_ch%)
         text i%,""
         return
      ELSE
    ' c'est OK on continue
         print "ch% = ";ch%  :' pour verif
         part%(ch%,0)=ch%
         if ch%=0
           gosub suite : return
         end_if
         part%(ch%,1)=part%(ch%,1)+pts%
'        if part%(ch%,0)=0 then gosub suite   :' comment désactiver le set_focus (ligne 31) suite a part%(ch%,0)=0 ?
         set_focus i%+1
      END_IF
end_if
 return
' ========================
suite:
a%=100
for b%= 501 to 501+(nc%-1)
  edit b% : top b%,140 : left b%,a% : width b%,20
  a%=a%+35
  on_key_up b%,suite1
next b%
set_focus 501
return

suite1:
pts%=7
if key_up_code=13
  b% = number_key_up
    if numeric(text$(b%))=0 then return
      ch%=val(text$(b%))
      part%(ch%,0)=ch%
      part%(ch%,1)=part%(ch%,1)+pts%
'      if part%(ch%,0)=0 then gosub suite2
'          set_focus b%+1
end_if
 return
' ==========
sortie:
print "au revoir"
end
    ' ============= les variables ===============
sub variables()
  dim i% ,b%     :' variables de boucle
  dim nc% : nc%=10   :' pour l'instant
  dim a% : a%=100
  dim ch%
  dim max_ch% : max_ch%=15 :' pour maitriser le nombre de ch%
  dim part%(max_ch%,1)
  dim pts%
end_sub
    ' ============= les labels ================
sub labels()
  label f1
  label sortie
  label suite,suite1
end_sub
    ' ============= les objets Panoramic ================
SUB objets()
  ' alpha 400
  alpha 400 :top 400,50:left 400,100:caption 400," Rajout de 7 points pour capacité au parcours"
  ' création des edits (avec déclaration des on_key_up pour chacun)
  for i%= 401 to 401+(nc%-1)
     edit i% : top i%,80 : left i%,a% : width i%,20
     a%=a%+35
     on_key_up i%,f1
  next i%
' alpha 500
  alpha 500 : top 500,110:left 500,100:caption 500," Rajout de 10 points pour forme actuelle"
END_SUB

Je constate que tu progresses et que tu n'hésites pas à poser des questions.
Tu es sur la bonne voie, continues......

A+
Revenir en haut Aller en bas
RMont




Nombre de messages : 233
Age : 81
Localisation : charente maritime
Date d'inscription : 29/12/2008

comment sortir de cette boucle Empty
MessageSujet: Re: comment sortir de cette boucle   comment sortir de cette boucle EmptyDim 2 Nov 2014 - 18:47


à klaus
en définitive,je n'était pas loin de la solution ,mais celle-ci m'échappait
à jean-claude
pour l'instant ,j'essaie simplement de faire fonctionner cette portion de code qui lorsqu'elle
fonctionnera bien ,sera incorporée dans un ensemble plus grand.
je mettrai des butées plus tard.

encore merci a vous


Revenir en haut Aller en bas
Contenu sponsorisé





comment sortir de cette boucle Empty
MessageSujet: Re: comment sortir de cette boucle   comment sortir de cette boucle Empty

Revenir en haut Aller en bas
 
comment sortir de cette boucle
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment afficher toujours la bonne heure sans boucle infini?
» sortir d'un programme...
» Erreur 44:Boucle FOR / NEXT
» Boucle
» scene2D et boucle

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: