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 du moment : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 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 : 1, 2  Suivant
AuteurMessage
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 EmptyDim 13 Sep 2015 - 12:19

Je viens de prendre ton source du WebDav, et j'ai testé. Je sous sous W10 64 bits, avec PAnoramic V0.9.26, donc dernière version.

Constat:
1. le bouton "division" est inactif en lançant dans Panoramic_Editor.
2. insérer une ligne quelconque, même un commentaire, peut débloquer la situation, mais pas toujours. Et l'emplacement de la ligne n'a pas d'importance
3. J'ai modifié la procédure reinit() comme suit, en mettant set_focus en commentaire:
Code:
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
4. cela fonctionne maintenant parfaitement à partir de Panoramic_Editor
5. cela fonctionne également avec l'exécutable généré

Conclusion:
C'est bien le set_focus qui pose problème, et qui est parfaitement inutile à cet endroit. Mais à l'évidence, il y a un bug.

EDIT

L'arrêt de l'exécutable par la croix rouge généré semble fonctionner, mais laisse le processus en mémoire, visible dans l'onglet "Détails" (liste des processus) du gestionnaire des tâches. Il faut le tuer manuellement...
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 EmptyDim 13 Sep 2015 - 16:42

Merci à Sylverman, Marc37 et à Klaus pour vos réponses.

@Klaus,
Le set_focus 0 n'est pas là par hasard. Il permet d'avoir l'afficheur du haut (qui est un LIST) vierge. C'est à dire sans les pointillés.

Mais le problème, c'est pas SET_FOCUS.

Essai ce changer la SUB reinit, comme ceci:
Code:
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
Là au lancement dans l'éditeur, la division ne fonctionne pas.


Maintenant ajoute une ligne vide après set_focus 0
Et là ça marche et la transformation en exe aussi.
Et à la fermeture par la croix rouge, il n'y a plus de processus en mémoire.


J'en conclu qu'il y a un bug dans Panoramic.

Je vais voir avec Jack.

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 EmptyDim 13 Sep 2015 - 18:21

J'ai fait ceci:
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% then reinit()
  if number_click=bt_divise% then divise()
  if number_click=bt_multipli% then multipli()
  if number_click=bt_moins% then moins()
  if number_click=bt_virg% then virg()
  if number_click=bt_PC% then PC()
  if number_click=bt_plus% then plus()
  if number_click=bt_egal% then egal()
  if number_click=bt_0% then bt("0")
  if number_click=bt_1% then bt("1")
  if number_click=bt_2% then bt("2")
  if number_click=bt_3% then bt("3")
  if number_click=bt_4% then bt("4")
  if number_click=bt_5% then bt("5")
  if number_click=bt_6% then bt("6")
  if number_click=bt_7% then bt("7")
  if number_click=bt_8% then bt("8")
  if number_click=bt_9% then bt("9")
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% :' 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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% : 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

Chez moi, ça marche aussi bien sous l'éditeur que sous forme de EXE généré.

La différence, c'est que j'ai retiré toutes les commandes "parent no%,0"...
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 EmptyDim 13 Sep 2015 - 20:02

Oui, j'ai fait le test et le problème a disparu.

Cela reste un mystère car même si c'était inutile de déclarer parent N,0, le code reste valable (je veux dire qu'il n'est pas faux).

Pour moi ce sujet est clos vu que c'est résolu.

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 EmptyDim 13 Sep 2015 - 21:02

Certes, c'est résolu pour ton programme. Reste qu'il y a bien un big dans Panoramic, dès lors qu'on utilise la commande "parent N,0" sur tous les objets. Certes, la form 0 est le parent par défaut. Mais cela ne devrait rien déranger. Or, ce n'est pas le cas... C'est un cas pour Jack.
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 - 8:39

@Klaus,
Je continu ma recherche ici pour garder le dialogue avec Jack clair ...(sur l'autre post) .

Si tu as le temps,
essai d'insérer cette ligne au début du label clics (dans le code d'origine)
Code:
message "ACTIVE de "+str$(number_click)+" est égale à"+str$(active(number_click))

dis-moi ce que tu en penses.

on a un problème d’événement...
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 - 11:18

Je l'avais déjà fait, cela, pendant mes tests. Constat: les valeurs de number_click sont bonnes, et le problème a disparu. Comme tu dis, c'est une histoire de fou...
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 - 11:37

Dans mes programmes pour éviter ce problème qui m' a rendu dingo
une fois ou deux, j' en suis venu à ceci :

déclaration de variables événement : nclic%, ndclic%, nchange%

puis un label pour chacun : Clic,DClic,Change

puis la gestion des click :

CLIC:
   nclic% = number_click
   if nclic% = NumObjet% : Procedure() : return : end_if
return

de même pour le reste.

Depuis que je procède ainsi je n' ai plus de soucis.

Ps: tu peux te servir de Select...Case...End_select si les objets sont numérotés en dur.
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 - 11:56

J'ai essayé, Ygeronimi. J'ai déclaré une variable nb_click%, et j'ai modifié la routine ON_CLICK de la manière suivante:
Code:
clics:
  nb_click% = number_click
  if nb_click%=bt_CE% then reinit()
  if nb_click%=bt_divise% then divise()
  if nb_click%=bt_multipli% then multipli()
  if nb_click%=bt_moins% then moins()
  if nb_click%=bt_virg% then virg()
  if nb_click%=bt_PC% then PC()
  if nb_click%=bt_plus% then plus()
  if nb_click%=bt_egal% then egal()
  if nb_click%=bt_0% then bt("0")
  if nb_click%=bt_1% then bt("1")
  if nb_click%=bt_2% then bt("2")
  if nb_click%=bt_3% then bt("3")
  if nb_click%=bt_4% then bt("4")
  if nb_click%=bt_5% then bt("5")
  if nb_click%=bt_6% then bt("6")
  if nb_click%=bt_7% then bt("7")
  if nb_click%=bt_8% then bt("8")
  if nb_click%=bt_9% then bt("9")
RETURN
Mais le résultat est le même: le bouton "Divise" ne marche pas. Son évènement ON_CLICK ne se déclenche pas, tout simplement, et on n'arrive même pas dans la routine clics.
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 - 12:11

Ton, astuce, Ygeronimi est intéressante.

Mais là, c'est le délire What a Face

La ligne 111 du code d'origine est un commentaire (' la touche %), il suffit d'enlever % pour que ça marche, mais à la condition qu'il n'y ai pas de ligne vide entre la 127 et la 128. Exclamation Question Exclamation Question

Il semble qu'il y a un problème de lecture du code par Panoramic_Editor.

C'est une piste à suivre.

A+
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 - 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 1 sur 2Aller à la page : 1, 2  Suivant
 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: