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.
comment sortir de cette boucle Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
comment sortir de cette boucle Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
comment sortir de cette boucle Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
comment sortir de cette boucle Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
comment sortir de cette boucle Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
comment sortir de cette boucle Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
comment sortir de cette boucle Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
comment sortir de cette boucle Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
comment sortir de cette boucle Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
comment sortir de cette boucle Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
comment sortir de cette boucle Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
comment sortir de cette boucle Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
comment sortir de cette boucle Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
comment sortir de cette boucle Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
comment sortir de cette boucle 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
-29%
Le deal à ne pas rater :
DYSON V8 Origin – Aspirateur balai sans fil
269.99 € 379.99 €
Voir le deal

 

 comment sortir de cette boucle

Aller en bas 
3 participants
AuteurMessage
RMont




Nombre de messages : 233
Age : 82
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 : 12331
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 : 70
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 : 82
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...
» On ne va jamais s'en sortir.
» Boucle
» Erreur 44:Boucle FOR / NEXT

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: