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.
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 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 à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 Une histoire de fou ou j'ai besoin de vacances (résolu)

Aller en bas 
+5
Cobra
papydall
RMont
Yannick
Jean Claude
9 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Yannick




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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: re   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 12:27

@ Klaus,

Ayez pitié, banissez la formule "if...then..."
et remplacez là par par " if...end_if"

un début, une fin

avec then, il y a souci 1 coup sur 4
le return avant le end_if permet de sortir sans tester les if suivant celui qui est à prendre en compte
et on gagne en rapidité.

@ Jean Claude,

Il y a surement un souci.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 12:43

@Ygeronimi:
Pourquoi me dis-tu
Citation :
Ayez pitié, banissez la formule "if...then..."
et remplacez là par par " if...end_if"
Je n'ai fait que reprendre le code de Jean-Claude, tel qu'il est...
Personnellement, j'aurais fait un select...case...end_select. Mais ça a déjà été dit.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: re   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 12:59

Je le dis parce que je la vois dans le code, tu n' y es pour rien... Laughing

Chaque fois que j' ai voulu faire court en utilsant "then" j' ai eu des soucis.
Maintenant, elle est bannie chez moi.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 13:16

@Ygeronimi, tu aurais bien mis le doigt dessus.

J'ai remplacé les if/then par if/end_if dans le sous-programme clics.
Et là, ça marche normalement (l'exe aussi).

Code:
' Calculette_Basique par JC 08/2015
hide 0
application_title "CALCULETTE (Basique)"
' message string$(51," ")+"INFORMATION"+chr$(13)+"Cette calculette est destinée aux enfants. Elle ne fait qu'un calcul à la fois."
Retourne_Dimension_Bandeau_Et_Bord()
Dim_Label()
Objets()
show 0
reinit()
END
rem ============================================================================
clics:
   if number_click=bt_CE%
      reinit()
   end_if
   if number_click=bt_divise%
      divise()
   end_if
   if number_click=bt_multipli%
      multipli()
   end_if
   if number_click=bt_moins%
      moins()
   end_if
   if number_click=bt_virg%
      virg()
   end_if
   if number_click=bt_PC%
      PC()
   end_if
   if number_click=bt_plus%
      plus()
   end_if
   if number_click=bt_egal%
      egal()
   end_if
   if number_click=bt_0%
      bt("0")
   end_if
   if number_click=bt_1%
      bt("1")
   end_if
   if number_click=bt_2%
      bt("2")
   end_if
   if number_click=bt_3%
      bt("3")
   end_if
   if number_click=bt_4%
      bt("4")
   end_if
   if number_click=bt_5%
      bt("5")
   end_if
   if number_click=bt_6%
      bt("6")
   end_if
   if number_click=bt_7%
      bt("7")
   end_if
   if number_click=bt_8%
      bt("8")
   end_if
   if number_click=bt_9%
      bt("9")
   end_if
RETURN
rem ============================================================================
SUB reinit()
    tour%=0 : nb=0 : nbP=0 : nombre$="" : lig$="" : op$="" : mode$="" : inactive bt_PC%
    clear afi_op% : clear afi_result% : inactive bt_egal% : inactive_boutons() : active bt_virg%
    Ctrl_bouton() : set_focus 0
END_SUB

SUB Ctrl_bouton()
    if active(bt_egal%)=0 then file_load bt_egal%,"egal_nb.bmp"
    if active(bt_egal%)=1 then file_load bt_egal%,"egal.bmp"
    if active(bt_virg%)=0 then file_load bt_virg%,"virgule_nb.bmp"
    if active(bt_virg%)=1 then file_load bt_virg%,"virgule.bmp"
    if active(bt_PC%)=0 then file_load bt_PC%,"Pourcentage_nb.bmp"
    if active(bt_PC%)=1 then file_load bt_PC%,"Pourcentage.bmp"
    if active(bt_plus%)=0 then file_load bt_plus%,"plus_nb.bmp"
    if active(bt_plus%)=1 then file_load bt_plus%,"plus.bmp"
    if active(bt_moins%)=0 then file_load bt_moins%,"moins_nb.bmp"
    if active(bt_moins%)=1 then file_load bt_moins%,"moins.bmp"
    if active(bt_multipli%)=0 then file_load bt_multipli%,"multiplication_nb.bmp"
    if active(bt_multipli%)=1 then file_load bt_multipli%,"multiplication.bmp"
    if active(bt_divise%)=0 then file_load bt_divise%,"division_nb.bmp"
    if active(bt_divise%)=1 then file_load bt_divise%,"division.bmp"
END_SUB

' les 4 opérations
SUB divise()
    tour%=0 : active bt_virg%
    inactive_boutons() : op$="/" : clear afi_result% : lig$=lig$+" : " : affiche_lig()
    if mode$="" then nb=val(nombre$) : mode$="C" : nbP=nb : nb=0 : nombre$=""
END_SUB
SUB multipli()
    tour%=0 : active bt_virg% : active bt_PC%
    inactive_boutons() : op$="*" : clear afi_result% : lig$=lig$+" x " : affiche_lig()
    if mode$="" then nb=val(nombre$) : mode$="C" : nbP=nb : nb=0 : nombre$=""
END_SUB
SUB plus()
    tour%=0 : active bt_virg% : active bt_PC%
    inactive_boutons() : op$="+" : clear afi_result% : lig$=lig$+" + " : affiche_lig()
    if mode$="" then nb=val(nombre$) : mode$="C" : nbP=nb : nb=0 : nombre$=""
END_SUB
SUB moins()
    tour%=0 : active bt_virg% : active bt_PC%
    inactive_boutons() : op$="-" : clear afi_result% : lig$=lig$+" - " : affiche_lig()
    if mode$="" then nb=val(nombre$) : mode$="C" : nbP=nb : nb=0 : nombre$=""
END_SUB
' résultat
SUB egal()
  if numeric(nombre$)=1
     nb=val(nombre$)
  else
     if right$(nombre$,1)="%" and op$="*"
        nombre$=left$(nombre$,len(nombre$)-1) : nb=val(nombre$) : op$="%*"
     end_if
     if right$(nombre$,1)="%" and op$="+"
        nombre$=left$(nombre$,len(nombre$)-1) : nb=val(nombre$) : op$="%+"
     end_if
     if right$(nombre$,1)="%" and op$="-"
        nombre$=left$(nombre$,len(nombre$)-1) : nb=val(nombre$) : op$="%-"
     end_if
  end_if
  inactive bt_egal% : tour%=0 : active bt_virg%
  if op$="%*" then nbP=(nbP*nb)/100
  if op$="%+" then nbP=nbP+((nbP*nb)/100)
  if op$="%-" then nbP=nbP-((nbP*nb)/100)
  if op$="+" then nbP=nbP+nb
  if op$="-" then nbP=nbP-nb
  if op$="*" then nbP=nbP*nb
  if op$="/"
     if nb<>0
        nbP=nbP/nb
     else
        message "La division par zéro n'existe pas" : reinit() : EXIT_SUB
     end_if
  end_if
  clear afi_result% : lig$=lig$+" = "+str$(nbP) : affiche_lig()
  nb=0 : nombre$="" : mode$="F" : clear afi_result% : item_add afi_result%,str$(nbP)
  Ctrl_bouton()
END_SUB
' la touche %
SUB PC()
    inactive bt_PC%
    Ctrl_Mode() : nombre$=nombre$+"%" : affiche() : lig$=lig$+"%" : affiche_lig()
    Ctrl_bouton()
END_SUB
' la virgule
SUB virg()
    inactive bt_virg% : Ctrl_bouton()
    if tour%=0 or mode$="F" then nombre$="0" : lig$=lig$+"0"
    nombre$=nombre$+"." : affiche() : lig$=lig$+"," : affiche_lig()
    if mode$="F"  then inactive bt_egal% :  mode$="" : lig$="0," : nbP=0 : affiche_lig()
END_SUB
' les chiffres
SUB bt(n$)
    Ctrl_Mode() : nombre$=nombre$+n$ : lig$=lig$+n$ : n$="" : affiche() : affiche_lig()
END_SUB
SUB Ctrl_Mode()
    Ctrl_bouton()
    if mode$="F" then inactive bt_egal% : mode$="" : lig$="" : nbP=0 : affiche_lig()
    if mode$="C" then active bt_egal% : inactive_boutons()
    if mode$="" then active_boutons()
    tour%=tour%+1
END_SUB
' l'affichage
SUB affiche()
    if len(nombre$)>14 then message "   14 chiffres maximum !   " : reinit() : Exit_Sub
    clear afi_result% : item_add afi_result%,nombre$
END_SUB
SUB affiche_lig()
    clear afi_op%
    if len(lig$)>26 then Exit_Sub
    item_add afi_op%,lig$
END_SUB
' contrôle des boutons
SUB inactive_boutons()
    inactive bt_divise% : inactive bt_multipli% : inactive bt_moins% : inactive bt_plus%
    Ctrl_bouton()
END_SUB
SUB active_boutons()
    active bt_divise% : active bt_multipli% : active bt_moins% : active bt_plus%
    Ctrl_bouton()
END_SUB
rem ============================================================================
SUB Dim_Label()
    dim no%,tour%
    dim nb,nbP
    dim virgul$,nombre$,lig$,op$,mode$
    virgul$="."
    dim afi_result%,afi_op%
    dim bt_CE%,bt_divise%,bt_multipli%,bt_moins%,bt_virg%,bt_PC%,bt_plus%,bt_egal%
    dim bt_0%,bt_1%,bt_2%,bt_3%,bt_4%,bt_5%,bt_6%,bt_7%,bt_8%,bt_9%
    label fin,clics
END_SUB
' ------------------------------------------------------------------------------
SUB Objets()
    ' Form 0
    border_small 0 : caption 0,"CALCULETTE (Basique)" : width 0,400
    height 0,302 : width 0,187 : top 0,(screen_y/2)-(height(0)/2) : left 0,(screen_x/2)-(width(0)/2)
    color 0,150,240,255
    ' Afficheurs
    no%=no%+1 : afi_op%=no% : list no% : parent no%,0 :' font_bold no%
                width no%,width(0)-(bord%*2)-8 : left no%,4 : height no%,20 : top no%,5
    no%=no%+1 : afi_result%=no% : list no% : parent no%,0 : color no%, 255,255,0
                font_color no%,0,100,255
                font_bold no% : font_size no%,14
                width no%,width(0)-(bord%*2)-8 : left no%,4 : height no%,30 : top no%,top(afi_op%)+height(afi_op%)+2
    ' les boutons
    ' la première rangée
    no%=no%+1 : bt_CE%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"clear.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+2 : left no%,left(afi_result%)
                  on_click no%,clics
    no%=no%+1 : bt_divise%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"division.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+2 : left no%,left(bt_CE%)+width(bt_CE%)+1
                  on_click no%,clics
    no%=no%+1 : bt_multipli%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"multiplication.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+2 : left no%,left(bt_divise%)+width(bt_divise%)+1
                  on_click no%,clics
    no%=no%+1 : bt_moins%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"moins.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+2 : left no%,left(bt_multipli%)+width(bt_multipli%)+1
                  on_click no%,clics
    ' la deuxième rangée
    no%=no%+1 : bt_7%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"7.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+height(bt_CE%)+2 : left no%,left(bt_CE%)
                  on_click no%,clics
    no%=no%+1 : bt_8%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"8.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+height(bt_CE%)+2 : left no%,left(bt_7%)+width(bt_7%)+1
                  on_click no%,clics
    no%=no%+1 : bt_9%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"9.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+height(bt_CE%)+2 : left no%,left(bt_8%)+width(bt_8%)+1
                  on_click no%,clics
    ' la troisième rangée
    no%=no%+1 : bt_4%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"4.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*2)+2 : left no%,left(bt_7%)
                  on_click no%,clics
    no%=no%+1 : bt_5%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"5.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*2)+2 : left no%,left(bt_8%)
                  on_click no%,clics
    no%=no%+1 : bt_6%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"6.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*2)+2 : left no%,left(bt_9%)
                  on_click no%,clics
    ' quatrième rangée
    no%=no%+1 : bt_1%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"1.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*3)+2 : left no%,left(bt_4%)
                  on_click no%,clics
    no%=no%+1 : bt_2%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"2.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*3)+2 : left no%,left(bt_5%)
                  on_click no%,clics
    no%=no%+1 : bt_3%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"3.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*3)+2 : left no%,left(bt_6%)
                  on_click no%,clics
    ' cinquième rangée
    no%=no%+1 : bt_0%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"0.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*4)+2 : left no%,left(bt_1%)
                  on_click no%,clics
    no%=no%+1 : bt_PC%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"Pourcentage.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*4)+2 : left no%,left(bt_2%)
                  on_click no%,clics
    no%=no%+1 : bt_virg%=no% : picture no% : parent no%,0 : width no%,40 : height no%,40 : file_load no%,"virgule.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+(height(bt_CE%)*4)+2 : left no%,left(bt_3%)
                  on_click no%,clics
    ' Bouton +
    no%=no%+1 : bt_plus%=no% : picture no% : parent no%,0 : width no%,40 : height no%,80 : file_load no%,"plus.bmp"
                  top no%,top(afi_result%)+height(afi_result%)+height(bt_moins%)+2 : left no%,left(bt_multipli%)+width(bt_multipli%)+1
                  on_click no%,clics
    ' Bouton =
    no%=no%+1 : bt_egal%=no% : picture no% : parent no%,0 : width no%,40 : height no%,80 : file_load no%,"egal.bmp"
                  top no%,top(bt_3%) : left no%,left(bt_plus%)
                  on_click no%,clics
END_SUB
rem ============================================================================
SUB Retourne_Dimension_Bandeau_Et_Bord()
    ' controle de la position de la procédure dans le programme
    IF NUMBER_OBJECTS>0
       message "La SUB 'Retourne_Dimension_Bandeau_Et_Bord' doit être placée avant la création du premier objet !"
       terminate
    END_IF
    ' création des VARIABLES GLOBALES
    IF VARIABLE("bandeau%")=0 then DIM bandeau%
    IF VARIABLE("bord%")=0 then DIM bord%
    ' Calcul de bandeau% et bord%
    dim_local w0%,h0%,w1%,h1%,w2%,h2%
    w0%=WIDTH(0) : h0%=HEIGHT(0)
    picture 1 : full_space 1 : w1%=WIDTH(1) : h1%=HEIGHT(1)
    w2%=w0%-w1% : h2%=h0%-h1% : bandeau%=h2%-(w2%/2) : bord%=w2%/2
    ' Suppression du Picture devenu inutile
    delete 1
END_SUB
rem ============================================================================
fin:
   terminate
RETURN

J'ai procédé avec if/then (dans mon code d'origine) car dans la configuration du code, une seule des lignes du sous programme "clics" correspond à la condition if, vu que c'est le dernier clic qui est retenu pour vérifier la condition.
De plus le sous_programme est bien fermé par return.
Conclusion: il pourrait y avoir un bug avec if/then.

@Klaus,
Je n'ai pas retenu select/case pour la simple raison que j'utilise la numérotation d'objet par variable.
dans ce cas if/ then est plus pratique car j'utilise le numéro d'objet par son "nom" défini par la variable.

Pour moi, je considère avoir écris mon code correctement et à ma convenance, il y a un bug, Panoramic, quelque-part...

A+

PS:
Ygeronimi a écrit:
Chaque fois que j' ai voulu faire court en utilsant "then" j' ai eu des soucis.
Maintenant, elle est bannie chez moi.

Cette déclaration me fait monter dans les tours. Mad
Tu aurais, peut-être, été plus utile en signalant le problème quand tu l'as découvert.
Mais , bon, on est tous pareil....

Very Happy
Revenir en haut Aller en bas
Yannick




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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: re   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 13:57

A mon avis, le problème vient de la succession de "if...then"
- si tu ecris :
clic:
   if x%=1 then ........
return
Pas de souci

- si tu ecris :
Clic:
   if x%=1 then .......
   if x%=2 then ........
return
là tu vas en avoir un car le premier if n' est pas cloturé.
c' est presque comme s tu avais écris :
Clic:
   if x%=1 then ....... if x%=2 then ......
return


J' en rajoute, le return juste avant le end_if peut être utile pour gagner de la vitesse mais aussi 
si la variable de comparaison est modifié par le premier if adequat qu' elle rencontre.


@ Jean Claude,
Ce n' est une histoire de fou mais bien une histoire Panoramicien...
lol!
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 14:21

Ca n'en serait pas moins un bug puisque cette écriture n'est pas censé poser problème... sinon il ne faudrait plus l'avoir dans les tutoriaux...

Reste à voir si le problème n'est pas dans cette structure après l'appel d'un sous programme suivi d'une commande.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 15:40

@Ygeronimi,

tu dis:
Clic:
  if x%=1 then .......
  if x%=2 then ........
return


serait comme:
Clic:
  if x%=1 then ....... if x%=2 then ......
return

Si c'est la raison, alors c'est un BUG.

Une histoire de fous ou de panoramiciens: C'est pareil !   lol!  

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 15:44

Désolé, ceci marche pourtant parfaitement:
Code:
label clic
dim x%
button 1 : top 1,10 : left 1,10  : caption 1,"test 1" : on_click 1,clic
button 2 : top 2,10 : left 2,110 : caption 2,"test 2" : on_click 2,clic

end

Clic:
  x% = number_click
  if x%=1 then message "bouton 1"
  if x%=2 then message "bouton 2"
return
Le problème est plus complexe que ça. Le fait que l'erreur disparaît si l'on supprime toutes les commandes "parent no%,0" lors des créations d'objets, montre clairement que le problème n'est en aucun cas lié à la structure des IF...THEN. D'ailleurs, l'évènement on_click du bouton "divise" ne se déclenche même pas, et in ne rentre donc même pas dans la routine clic. Peu importe la façon dont les IF sont construits, puisqu'on n'y va pas.

C'est lié à la prise en compte des "parent no%,0" qui sèment la pagaille.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 15:58

Je pense comme Klaus, le problème est lié au géniteur zéro, pardon au PARENT no%,0 !
Bon, une histoire de fous ou de Panoramiciens.
Qu’importe le flacon (la strucure) pourvu qu’on ait l’ivresse (le bug). Cool
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 17:16

Je pense que c'est encore plus complexe que ça. Cela doit venir d'un problème de contexte, particulier au programme de la calculette. En effet, j'ai fait un programme de test, avec un objet edit et 100 boutons, tous avec "parent no%,0". Tous avec la même routine on_click, et cette routine contient une terrible sequence de IF...THEN. Et tout marche parfaitement: les clics se déclenchent bien, et aucun problème sur les IF...THEN. Voici le test:
Code:

label clic
dim x%, i%, j%, no%

edit 150 : top 150,10 : left 150,1100
full_space 0
for i%=1 to 10
  for j%=1 to 10
    no% = no% + 1
    button no%
      parent no%,0
      top no%, (i%-1)*30 + 10
      left no%,(j%-1)*100 + 10
      caption no%,"test "+str$(no%)
      on_click no%,clic
  next j%
next i%
end

Clic:
  x% = number_click
   if x%=1 then info(x%)
   if x%=2 then info(x%)
   if x%=3 then info(x%)
   if x%=4 then info(x%)
   if x%=5 then info(x%)
   if x%=6 then info(x%)
   if x%=7 then info(x%)
   if x%=8 then info(x%)
   if x%=9 then info(x%)
   if x%=10 then info(x%)
   if x%=11 then info(x%)
   if x%=12 then info(x%)
   if x%=13 then info(x%)
   if x%=14 then info(x%)
   if x%=15 then info(x%)
   if x%=16 then info(x%)
   if x%=17 then info(x%)
   if x%=18 then info(x%)
   if x%=19 then info(x%)
   if x%=20 then info(x%)
   if x%=21 then info(x%)
   if x%=22 then info(x%)
   if x%=23 then info(x%)
   if x%=24 then info(x%)
   if x%=25 then info(x%)
   if x%=26 then info(x%)
   if x%=27 then info(x%)
   if x%=28 then info(x%)
   if x%=29 then info(x%)
   if x%=30 then info(x%)
   if x%=31 then info(x%)
   if x%=32 then info(x%)
   if x%=33 then info(x%)
   if x%=34 then info(x%)
   if x%=35 then info(x%)
   if x%=36 then info(x%)
   if x%=37 then info(x%)
   if x%=38 then info(x%)
   if x%=39 then info(x%)
   if x%=40 then info(x%)
   if x%=41 then info(x%)
   if x%=42 then info(x%)
   if x%=43 then info(x%)
   if x%=44 then info(x%)
   if x%=45 then info(x%)
   if x%=46 then info(x%)
   if x%=47 then info(x%)
   if x%=48 then info(x%)
   if x%=49 then info(x%)
   if x%=50 then info(x%)
   if x%=51 then info(x%)
   if x%=52 then info(x%)
   if x%=53 then info(x%)
   if x%=54 then info(x%)
   if x%=55 then info(x%)
   if x%=56 then info(x%)
   if x%=57 then info(x%)
   if x%=58 then info(x%)
   if x%=59 then info(x%)
   if x%=60 then info(x%)
   if x%=61 then info(x%)
   if x%=62 then info(x%)
   if x%=63 then info(x%)
   if x%=64 then info(x%)
   if x%=65 then info(x%)
   if x%=66 then info(x%)
   if x%=67 then info(x%)
   if x%=68 then info(x%)
   if x%=69 then info(x%)
   if x%=70 then info(x%)
   if x%=71 then info(x%)
   if x%=72 then info(x%)
   if x%=73 then info(x%)
   if x%=74 then info(x%)
   if x%=75 then info(x%)
   if x%=76 then info(x%)
   if x%=77 then info(x%)
   if x%=78 then info(x%)
   if x%=79 then info(x%)
   if x%=80 then info(x%)
   if x%=81 then info(x%)
   if x%=82 then info(x%)
   if x%=83 then info(x%)
   if x%=84 then info(x%)
   if x%=85 then info(x%)
   if x%=86 then info(x%)
   if x%=87 then info(x%)
   if x%=88 then info(x%)
   if x%=89 then info(x%)
   if x%=90 then info(x%)
   if x%=91 then info(x%)
   if x%=92 then info(x%)
   if x%=93 then info(x%)
   if x%=94 then info(x%)
   if x%=95 then info(x%)
   if x%=96 then info(x%)
   if x%=97 then info(x%)
   if x%=98 then info(x%)
   if x%=99 then info(x%)
   if x%=100 then info(x%)

return

sub info(n%)
  text 150, "bouton "+str$(n%)
end_sub

Je pense que là, je reproduis au plus près la structure du programme de la calculette, dans les images, cependant.

Et avec des picture à la place des boutons, c'est pareil: ça marche:
Code:

label clic
dim x%, i%, j%, no%

edit 150 : top 150,10 : left 150,1100
full_space 0
for i%=1 to 10
  for j%=1 to 10
    no% = no% + 1
'    button no%
    picture no% : height no%,25 : width no%,90
      color no%,255,0,0
      parent no%,0
      top no%, (i%-1)*30 + 10
      left no%,(j%-1)*100 + 10
'      caption no%,"test "+str$(no%)
      print_target_is no%
      print "test "+str$(no%)
      on_click no%,clic
  next j%
next i%
end

Clic:
  x% = number_click
  if x%=1 then info(x%)
  if x%=2 then info(x%)
  if x%=3 then info(x%)
  if x%=4 then info(x%)
  if x%=5 then info(x%)
  if x%=6 then info(x%)
  if x%=7 then info(x%)
  if x%=8 then info(x%)
  if x%=9 then info(x%)
  if x%=10 then info(x%)
  if x%=11 then info(x%)
  if x%=12 then info(x%)
  if x%=13 then info(x%)
  if x%=14 then info(x%)
  if x%=15 then info(x%)
  if x%=16 then info(x%)
  if x%=17 then info(x%)
  if x%=18 then info(x%)
  if x%=19 then info(x%)
  if x%=20 then info(x%)
  if x%=21 then info(x%)
  if x%=22 then info(x%)
  if x%=23 then info(x%)
  if x%=24 then info(x%)
  if x%=25 then info(x%)
  if x%=26 then info(x%)
  if x%=27 then info(x%)
  if x%=28 then info(x%)
  if x%=29 then info(x%)
  if x%=30 then info(x%)
  if x%=31 then info(x%)
  if x%=32 then info(x%)
  if x%=33 then info(x%)
  if x%=34 then info(x%)
  if x%=35 then info(x%)
  if x%=36 then info(x%)
  if x%=37 then info(x%)
  if x%=38 then info(x%)
  if x%=39 then info(x%)
  if x%=40 then info(x%)
  if x%=41 then info(x%)
  if x%=42 then info(x%)
  if x%=43 then info(x%)
  if x%=44 then info(x%)
  if x%=45 then info(x%)
  if x%=46 then info(x%)
  if x%=47 then info(x%)
  if x%=48 then info(x%)
  if x%=49 then info(x%)
  if x%=50 then info(x%)
  if x%=51 then info(x%)
  if x%=52 then info(x%)
  if x%=53 then info(x%)
  if x%=54 then info(x%)
  if x%=55 then info(x%)
  if x%=56 then info(x%)
  if x%=57 then info(x%)
  if x%=58 then info(x%)
  if x%=59 then info(x%)
  if x%=60 then info(x%)
  if x%=61 then info(x%)
  if x%=62 then info(x%)
  if x%=63 then info(x%)
  if x%=64 then info(x%)
  if x%=65 then info(x%)
  if x%=66 then info(x%)
  if x%=67 then info(x%)
  if x%=68 then info(x%)
  if x%=69 then info(x%)
  if x%=70 then info(x%)
  if x%=71 then info(x%)
  if x%=72 then info(x%)
  if x%=73 then info(x%)
  if x%=74 then info(x%)
  if x%=75 then info(x%)
  if x%=76 then info(x%)
  if x%=77 then info(x%)
  if x%=78 then info(x%)
  if x%=79 then info(x%)
  if x%=80 then info(x%)
  if x%=81 then info(x%)
  if x%=82 then info(x%)
  if x%=83 then info(x%)
  if x%=84 then info(x%)
  if x%=85 then info(x%)
  if x%=86 then info(x%)
  if x%=87 then info(x%)
  if x%=88 then info(x%)
  if x%=89 then info(x%)
  if x%=90 then info(x%)
  if x%=91 then info(x%)
  if x%=92 then info(x%)
  if x%=93 then info(x%)
  if x%=94 then info(x%)
  if x%=95 then info(x%)
  if x%=96 then info(x%)
  if x%=97 then info(x%)
  if x%=98 then info(x%)
  if x%=99 then info(x%)
  if x%=100 then info(x%)

return

sub info(n%)
  text 150, "bouton "+str$(n%)
end_sub
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

Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 EmptyMar 15 Sep 2015 - 18:01

J' arrête les recherches car Jack a constaté le BUG, il lui reste plus qu'a le trouver et le tuer.

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty
MessageSujet: Re: Une histoire de fou ou j'ai besoin de vacances (résolu)   Une histoire de fou ou j'ai besoin de vacances (résolu) - Page 2 Empty

Revenir en haut Aller en bas
 
Une histoire de fou ou j'ai besoin de vacances (résolu)
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Besoin d' aide sur Make_Exe.exe [Resolu]
» Besoin de tests
» Pour une coche "résolu" RESOLU
» Histoire de fous
» Histoire d' en rire....

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: