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.
Problème lorsque j'arrive au END Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Problème lorsque j'arrive au END Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Problème lorsque j'arrive au END Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Problème lorsque j'arrive au END Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Problème lorsque j'arrive au END Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Problème lorsque j'arrive au END Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Problème lorsque j'arrive au END Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Problème lorsque j'arrive au END Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Problème lorsque j'arrive au END Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Problème lorsque j'arrive au END Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Problème lorsque j'arrive au END Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Problème lorsque j'arrive au END Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Problème lorsque j'arrive au END Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Problème lorsque j'arrive au END Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Problème lorsque j'arrive au END 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 : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 Problème lorsque j'arrive au END

Aller en bas 
AuteurMessage
Invité
Invité




Problème lorsque j'arrive au END Empty
MessageSujet: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 10:34

Comme je l'ai dis, je suis en train de faire un "déboggeur" (je ne sais pas si le mot existe, mais je l'emploi) pour Panoramic.
Après bien des transformations pour m'adapter à différentes possibilités, j'ai pris le principe suivant:
je recherche en premier tous les DIM, que je mets en commentaires (les instructions sur la même ligne à la suite sont remis devant), et je mets les déclarations sur la première ligne. C'est la seule méthode qui me permette de voir les variables sans y avoir d'erreur en visualisant une variable qui ne serait pas déclarée.
Le programme fonctionne en regardant au pas à pas le programme à contrôler. Mais si je veux sauter le blocage ligne par ligne, le programme s'arrête à la rencontre du END avec le message suivant: (67) pas trouver de REPEAT correspondant. Je ne vois pas de détournement qui n'aurait pas de retour dans les divers sous programmes. Je ne vois pas pourquoi, lorsque je fais toute la chaine de contrôle, cela marche, mais lorsque j'arrête avant les contrôles pour retourner aux lignes suivantes, il y a problème.

Je vais plusieurs programmes: un petit qui sert de teste et qui est déjà modifié, un deuxième pour être inclus dans le premier, et le programme provisoir qui fait les contôle. Celui-ci est un raccourcis du programme finale. Il n'y a pas les commandes lignes, etc...
le programme teste (celui-ci c'est pour montrer comment il est au départ, sans plus)
Code:
' programme d'essai
' **TRON**
label branche
width 0,600
dim a% , a$ ,b%,b$
memo 1 :on_click 1,branche
item_add 1,"voyon voir"
 #include "inclusion.bas"
for a%=1 to 10
 item_add 1,a%
next a%
message "nouvelle inclusion du même prg"
#include "inclusion.bas"
end

branche:
message "click sur le memo"
return

le programme corrigé, à sauvegarder sous "debug.bas"
Code:

DIM q$,objeTron% : LABEL q,liste_variable:gosub liste_variable
DIM a% , a$ ,b%,b$
' programme d'essai
q$="42":gosub q:' **TRON**
q$="53":gosub q:label branche
q$="64":gosub q:width 0,600
q$="75":gosub q:' dim a% , a$ ,b%,b$
q$="86":gosub q:memo 1 :on_click 1,branche
q$="97":gosub q:item_add 1,"voyon voir"
q$="108":gosub q:' #1 dépilé: #include "inclusion.bas"
q$="11#1:1":gosub q:rem "ceci est un essai d'inclusion dans un autre programme"
q$="12#1:2":gosub q:' et ne sert à rien
q$="13#1:3":gosub q:message "inclusion réussi"
q$="14#1:4":gosub q:' ==== FIN du programme #INCLUDE dépilé: inclusion.bas  #1 ====
q$="159":gosub q:for a%=1 to 10
q$="1610":gosub q: item_add 1,a%
q$="1711":gosub q:next a%
q$="1812":gosub q:message "nouvelle inclusion du même prg"
q$="1913":gosub q:' #2 dépilé: #include "inclusion.bas"
q$="20#2:1":gosub q:rem "ceci est un essai d'inclusion dans un autre programme"
q$="21#2:2":gosub q:' et ne sert à rien
q$="22#2:3":gosub q:message "inclusion réussi"
q$="23#2:4":gosub q:' ==== FIN du programme #INCLUDE dépilé: inclusion.bas  #2 ====
q$="2414":gosub q:end

q$="2616":gosub q:branche:
q$="2717":gosub q:message "click sur le memo"
q$="2818":gosub q:return
q_variable:
select q_variable%
  case 1 : item_add objeTron%+9," a$ = "+a$
  case 2 : item_add objeTron%+9," a% = "+ str$(a%)
  case 3 : item_add objeTron%+9," b$ = "+b$
  case 4 : item_add objeTron%+9," b% = "+ str$(b%)
end_select
return
liste_variable:
dlist 200
item_add 200,"a$"
item_add 200,"a%"
item_add 200,"b$"
item_add 200,"b%"
return


le programme qui sera un include du précédent: à sauvegarder sous: "inclusion.bas"

Code:

rem "ceci est un essai d'inclusion dans un autre programme"
' et ne sert à rien
message "inclusion réussi"


le programme lui-même (tout du moins la partie qui sert pour la démo)
Au final, le nom de toutes les variables et labels sera revu pour éviter les problème avec le programme lui-même.
C'est celui-ci qui sera exécuté Mettre tous les programmes dans le même dossier (le premier inutile il ne sert pas pour la démo)


Code:


DIM q$,objeTron% : LABEL q,liste_variable:gosub liste_variable
DIM a% , a$ ,b%,b$
' programme d'essai
q$="42":gosub q:' **TRON**
q$="53":gosub q:label branche
q$="64":gosub q:width 0,600
q$="75":gosub q:' dim a% , a$ ,b%,b$
q$="86":gosub q:memo 1 :on_click 1,branche
q$="97":gosub q:item_add 1,"voyon voir"
q$="108":gosub q:' #1 dépilé: #include "inclusion.bas"
q$="11#1:1":gosub q:rem "ceci est un essai d'inclusion dans un autre programme"
q$="12#1:2":gosub q:' et ne sert à rien
q$="13#1:3":gosub q:message "inclusion réussi"
q$="14#1:4":gosub q:' ==== FIN du programme #INCLUDE dépilé: inclusion.bas  #1 ====
q$="159":gosub q:for a%=1 to 10
q$="1610":gosub q: item_add 1,a%
q$="1711":gosub q:next a%
q$="1812":gosub q:message "nouvelle inclusion du même prg"
q$="1913":gosub q:' #2 dépilé: #include "inclusion.bas"
q$="20#2:1":gosub q:rem "ceci est un essai d'inclusion dans un autre programme"
q$="21#2:2":gosub q:' et ne sert à rien
q$="22#2:3":gosub q:message "inclusion réussi"
q$="23#2:4":gosub q:' ==== FIN du programme #INCLUDE dépilé: inclusion.bas  #2 ====
q$="2414":gosub q:end

q$="2616":gosub q:branche:
q$="2717":gosub q:message "click sur le memo"
q$="2818":gosub q:return
q_variable:
select q_variable%
  case 1 : item_add objeTron%+9," a$ = "+a$
  case 2 : item_add objeTron%+9," a% = "+ str$(a%)
  case 3 : item_add objeTron%+9," b$ = "+b$
  case 4 : item_add objeTron%+9," b% = "+ str$(b%)
end_select
return
liste_variable:
dlist 200
item_add 200,"a$"
item_add 200,"a%"
item_add 200,"b$"
item_add 200,"b%"
return

' ==============================================================================

' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
q:
if objeTron%=0
  objeTron%=50
  label q2 , q4 , q5 , q6 , fin ,q_variable  : dim q% ,qd% ,q_trace$ ,q_trace% ,key_sort% ,qq$ ,q_variable% ,q,q1%
  form objeTron%:width objeTron%,screen_x: height objeTron%,80:top objeTron%,screen_y-110 :' left objeTron%,200
        command_target_is objeTron%
  edit objeTron%+1 :top objeTron%+1,height(objeTron%)-60:font_size objeTron%+1,12:width objeTron%+1,width(objeTron%)-120:left objeTron%+1,100:font_bold objeTron%+1:color objeTron%+1,222,215,181

  alpha objeTron%+14:left objeTron%+14,5 :top objeTron%+14,height(objeTron%)-60:caption objeTron%+14,"Ligne:"
  edit  objeTron%+15:left objeTron%+15,40:top objeTron%+15,height(objeTron%)-60: width objeTron%+15,60:font_size objeTron%+15,12:color objeTron%+15,255,223,33:font_color objeTron%+15,255,0,0:font_bold objeTron%+15


  container_option objeTron%+2:top objeTron%+2,height(objeTron%)-90:width objeTron%+2,300:height objeTron%+2,30:left objeTron%+2,10
  option objeTron%+3:parent objeTron%+3,objeTron%+2:caption objeTron%+3,"bloque"  :width objeTron%+3,50:top objeTron%+3,8
  option objeTron%+4:parent objeTron%+4,objeTron%+2:caption objeTron%+4,"continue":width objeTron%+4,60:left objeTron%+4,70 :top objeTron%+4,8
  option objeTron%+5 :parent objeTron% +5,objeTron%+2:caption objeTron%+5 ,"boucle"    :width objeTron%+5 ,50:left objeTron%+ 5,140:top objeTron%+ 5,8
  option objeTron%+11:parent objeTron%+11,objeTron%+2:caption objeTron%+11,"ext-boucle":width objeTron%+11,80:left objeTron%+11,200:top objeTron%+11,8

  scroll_bar objeTron%+6:left objeTron%+6,380:top objeTron%+6,height(objeTron%)-80:height objeTron%+6,15:min objeTron%+6,1:max objeTron%+6,2000
              width objeTron%+6,width(objeTron%)-580:position objeTron%+6,500
  check  objeTron%+7:parent objeTron%+7,objeTron%:left objeTron%+7,300:width objeTron%+7,50:height objeTron%+7,20:caption objeTron%+7,"variables"
              top objeTron%+7,height(objeTron%)-80
  button objeTron%+8:parent objeTron%+8,objeTron%:left objeTron%+8,width(objeTron%)-140:width objeTron%+8,50:height objeTron%+8,20:caption objeTron%+8,"STOP"
              top objeTron%+8,height(objeTron%)-80
  form  objeTron%+10:hide objeTron%+10:width objeTron%+10,600:height objeTron%+10,200:top objeTron%+10,screen_y - 300 :color objeTron%+10,255,223,33:border_hide objeTron%+10
  list objeTron%+9:hide objeTron%+9:parent objeTron%+9,objeTron%+10:width objeTron%+9,width(objeTron%+10)-10:height objeTron%,150:top objeTron%+9,5:color objeTron%+9,231,235,239
              font_size objeTron%+9,12:font_bold objeTron%+9:left ObjeTron%+9,5
             

  dlist objeTron%+12:' mettre les numéros des variables, pour être relus au retour
  command_target_is 0
  dlist objeTron%+13:' left objeTron%+13,300:width objeTron%+13,500:height objeTron%+13,500:font_size objeTron%+13,12:' remplace list 1
  file_load objeTron%+13,"C:\TESTE\M_au _P_TRACE\debug.bas"
  q%=-1 :mark_on objeTron%+3 :on_click objeTron%+3,q5 :on_click objeTron%+4,q5 :on_click objeTron%+5,q5:on_click objeTron%+11,q5
  on_click objeTron%+8,fin :on_click objeTron%+7,q6
  command_target_is 0
end_if
' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  set_focus objeTron%+6: show objeTron% : height objeTron%,80:top objeTron%,screen_y-110
  if checked(objeTron%+7)=0 then hide objeTron%+10
  ' ici il faudrait si variable, remettre les valeurs modifiées
  if checked(objeTron%+7)=1 and checked(objeTron%+3)=1 and count(objeTron%+12)>0
      for qd%=1 to count(objeTron%+12)
        if numeric(item_read$(objeTron%+12,qd%))=1 then  q_variable%=val(item_read$(objeTron%+12,qd%))
        gosub q_variable
      next qd%
      height objeTron%+9,count(objeTron%+9)*22:height objeTron%+10,height(objeTron%+9)+10:top objeTron%+10,top(objeTron%)- height(objeTron%+10)
      clear objeTron%+12
      repeat
      until scancode=0 or key_up_special=0
  end_if

  if instr(q$,chr$(1))>0
      q=val(left$(q$, instr(q$,chr$(1))-1))
      q_trace$=item_read$(objeTron%+13,q)
      q$=mid$(q$,  instr(q$,  chr$(1) )+1 ,20)
  else
      if numeric(q$)=1 then q=val(q$)
  end_if
  text objeTron%+15,q$
  text objeTron%+1,mid$(q_trace$,instr(q_trace$,":gosub q:")+9,150) :display
  ' ----------------------------------
  repeat
      gosub q5

  until scancode=0
  if key_up_special=3 then goto fin
  if q%=0 then return
  ' ----------------------------------
  if scancode=13 then q%=-1:mark_on objeTron%+3:repeat:until scancode=0
  if checked(objeTron%+7)=1 then gosub q6
  if checked(objeTron%+3)=1 then q%=-1
  if checked(objeTron%+4)=1 then q%=0
  if checked(objeTron%+5)=1 then q%=1
              if checked(objeTron%+11)=1 then q%=2
  if clicked(objeTron%+8)=1 then goto fin
  if clicked(objeTron%+9)=1 then gosub q6 :'  gosub q6
  if q%=-1 then gosub q2
  if q%=1 then gosub q4
return
' ==============================================================================
q1:
  file_save 20,"copier_texte.txt"
return
' ==============================================================================
q2:
q%=-1:key_sort%=0
  repeat
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_repeat
      if clicked(objeTron%+9)=1 then gosub q6
      wait position(objeTron%+6)
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_repeat
      if clicked(objeTron%+9)=1 then gosub q6
  until scancode = 32 or key_up_special=3 or scancode=13 or key_sort%=3
  if scancode=13 then q%=0:mark_on objeTron%+4 :repeat:until scancode=0
  if key_up_special = 3 or key_sort%=3 then goto fin
return
' ==============================================================================
q4:
q%=1
if instr(upper$(q_trace$),"UNTIL")>0 or instr(upper$(q_trace$),"NEXT")>0 or instr(upper$(q_trace$),"END_WHILE")>0
  key_sort%=0
  repeat
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_repeat
  if key_up_special=3 then exit_repeat
  until scancode=32 or key_up_special=3
  if clicked(objeTron%+9)=1 then gosub q6
  repeat
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_for
  until scancode=0 or key_up_special=3
end_if
if key_sort%=3 or key_up_special=3 then goto fin
return

q5:
  if checked(objeTron%+3)=1 then q%=-1
  if checked(objeTron%+4)=1 then q%=0
  if checked(objeTron%+5)=1 then q%=1
return
q6:
' variable
show objeTron%+10:show objeTron%+9:set_focus objeTron%+1:set_focus objeTron%+6
  clear objeTron%+9 :sort 200
  for qd% = count(200) to 1 step -1
      if instr(q_trace$,item_read$(200,qd%))>0
        q_variable%=qd%:item_add objeTron%+12,q_variable%
        gosub q_variable
      end_if
  next qd%
  item_add objeTron%+9,"--------------------------------------"
  height objeTron%+9,count(objeTron%+9)*22:height objeTron%+10,height(objeTron%+9)+10:top objeTron%+10,top(objeTron%)- height(objeTron%+10)
return
fin:
stop

Si quelqu'un pouvait me dire pourquoi il y a problème. Si je ne contrôlait pas le programme avant le END, celui-ci fonctionne aussi, mais tous les programmes qui aurait des "inclusions" avant le END, ou qui fant un certain nombre de choses avant, n'aurait pas cette partie contrôlable.

Comment cela fonctionne?
au départ on a une ligne en bas de l'écran. Pour avancer pas à pas, il faut appuyer sur la barre d'espace.
Le SPIN ici n'a pas réellement d'intéret pour ce programme (c'est seulement le réglage d'un wait dans le déroulement du pas à pas auto)
si le check variable est clié, une fenêtre apparait et montre la valeur des variables avant que l'instruction ne soit exécuté.
Si vous appuyez sur la barre vous sautez à l'instruction suivante, mais en laissant la barre appyée, les variables montrent les valeurs modifiées.
en cliquant sur continu, le programme s'exécute normalement (seul le numéro de la ligne est montré)
en cliquant sur boucle, le programme est arrêté jusqu'à la sortie de la boucle.
Le coche ext/boucle, n'est pas codé.
En cliquant sur stop, on arrête le programme qui permet de sortir d'une boucle infini.
(si des fois quelqu'un veut bien intervenir)

A votre bon coeur, Messieurs, Dames! Merci
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 13:27

Sans rentrer plus dans les détails, vérifie déjà ce que tu fais exactement lorsque tu arrives en pas à pas à la commande "end". Est-ce que ron programme tente de l'exécuter ? Si oui, as-tu exécuté un "end" auparavant ?

Sinon, j'ai relevé le point suivant:
peut-être un "exit_for" à la place d'un "exit_repeat"
Code:
q4:
q%=1
if instr(upper$(q_trace$),"UNTIL")>0 or instr(upper$(q_trace$),"NEXT")>0 or instr(upper$(q_trace$),"END_WHILE")>0
  key_sort%=0
  repeat
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_repeat
  if key_up_special=3 then exit_repeat
  until scancode=32 or key_up_special=3
  if clicked(objeTron%+9)=1 then gosub q6
  repeat
      if clicked(objeTron%+8)=1 then key_sort%=3:exit_for    <<<<<========== exit_repeat ????
  until scancode=0 or key_up_special=3
end_if
if key_sort%=3 or key_up_special=3 then goto fin
return

Je regarderai un peu plus en profondeur plus tard...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 14:33

Merci pour avoir regardé.
Le coup de exit_for pour repeat, je ne l'avais pas vu.

Pour ce qui est du END, j'ai déjà fait l'essai avec des lignes normales sans le détour, et aussi en remettant en pas à pas avant d'arriver au END, ça ne change rien. J'ai déjà eu ce type d'erreur dans du codage normal en événementiel, mais en ayant auparavant été dans un sous programme pour faire un traitement particulier.
Si je mets return après le label q:, il n'y a pas d'erreur. Il y a une chose qui provoque l'erreur et je ne vois pas quoi.
Je viens de faire l'essai (si j'ai pas trop modifié les lignes:les lignes 112 à 115 avec:
Code:

repeat
  gosub q5
until scancode =0
en mettant ces lignes en commentaires, il n'y a plus l'erreur.
J'ai un vrai problème avec ce programme: en cliquant sur les diverses coches, il ne se passe rien. Remarque c'est peut-être normal, vu que le END n'est pas rencontré. Mais alors comment régler si on ne peut pas cliquer? La boucle en question me permettait de prendre contrôle des clics

Les lignes qui sont en q5, je viens de les mettes dans la boucle repeat/until en question, et je retrouve l'erreur, donc c'est là que le problème se pose.

C'est dommage, j'ai fais des essais sur des gros programmes, mais alors que le contrôle partait après le END, et j'ai trouvé vraiment pratique.

Si tu fais des essais en modifiant la partie qui ont les lignes détournées, il faut aussi faire les modifs sur le programme "debug.bas"

Merci à toi. Là je ne pourrais pas regarder avant ce soir.

A propos, en relisant ton post, c'est pas lorsqu'il est en pas à pas qu'il y a problème, c'est justement en mode continu.
Revenir en haut Aller en bas
Invité
Invité




Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 14:53

J'allais partir, et il m'est venu une idée, que j'ai essayé rapidement, et je crois qu'il faudrait peut-être y réfléchir. Pas vraiment le temps pour l'instant, et apparemment ça marche.
Je mets rapidement la partie de code et je part, à toi de voir ce que tu en penses.
Code:
DIM q$,objeTron% : LABEL q,liste_variable,s:gosub liste_variable
DIM a% , a$ ,b%,b$ :timer 95:on_timer 95, s : end
s:
timer_off 95:q$="42":gosub q:' **TRON**
salutation
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 15:16

En effet, j'avais compris la condition à l'envers: le problème se pose bien en mode "continu".

Alors, ça devient plus clair: Tu ne peux justement pas faire cela ! Avant le "end", on est en mode "ancien basic", et le "end" bascule en mode "évènementiel". Aucune instruction n'est exécutée automatiquement après un "end" ! Si tu étais dans une boucle "repeat...until" et le "end" est exécuté, alors Panoramic détecte à juste titre qu'il n'y a pas de clause de fin pour le repeat...

Il faut absolument que tu traites ce problème autrement. Soit, tu détectes le "end" et tu le traites à part (mais je ne vous absolument pas comment cela pourrait se faire en mode continu), soit tu traites tout en mode évènementiel. Il faut donc que ton programme de debug s'initialise, exécute son propre "end", puis tu prévois un bouton genre "démarrer debug" avec un on_click sur le début du code à debugger (ne pas oublier le return correspondant tout à la fin). Et alors, tu peux détecter le "end" du programme à débugger et le mettre en commentaire (ou l'ignorer), mais surtout ne pas l'exécuter.

Avec ta technique, tu est entré en conflit avec la logique interne de Panoramic. Rappelle-toi:
Code:

label start_debug
dim i%
button 1 : top 1,10 : left 1,10 : caption 1,"Start debug" : on_click 1,start_debug
i% = i% + 1
message "Mode ancien: "+str$(i%)
end
i% = i% + 1
message "Ce message ne doit pas apparaître: "+str$(i%)

start_debug:
i% = i% + 1
message "Démarrage du debug: "+str$(i%)

return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 17:12

MErci Klaus
J'ai pu me libérer plus tôt.
Alors voilà. j'ai donc fait l'essai avec on timer pour sauter le end que je fais au départ. Ensuite je l'arrète et je le supprime puisqu'a plus l'obligation d'être.
Pour ce qui est du END, il n'y a rien à faire. Le END arrête simplement le programme pour attendre les clics.
En procédant comme je l'ai dit, je suis en mode événement. Ensuite des END, il peut y en avoir plusieurs dans un programme, cela n'est pas dérangeant.
D'ailleurs fait l'essai, à la place du stop à la fin, tu mets END. Cela arrète le programme, et ne met pas le message. En faisant ainsi, cela ne t'empêches pas de repartir. Il y a on_click sur le memo, et si tu cliques, le programme continu. Donc l'idée est bonne, et peut-être cela est une idée à creuser pour d'autre programme.

Ton avis sur ce que je viens de dire m'intéresse. Je vais pouvoir revoir la suite. (ce soir, chaque chose en son temps)
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 18:07

Effectivement, tu peux mettre plusieurs "end". Chaque fois, le contrôle repasse à Panoramic, et le programme ne continue pas en ligne, et c'est bien ça le problème. S'il y a un "repeat" avant le "end",Panoramic rebouclera dessus lorsqu'il rencontrera le 'until", puis retombera sur le end, etc. J'ai fait une petite démo pour voir l'effet:
Code:
label suite
dim i%
message "avant end"
button 1 : top 1,10 : left 1,10 : caption 1,"Suite" : on_click 1,suite
repeat
    message "Dans la boucle "+str$(i%)
    end

message "ne peut pas arriver"

suite:
message "suite: "+str$(i%)
i% = i% + 1
until i%>4
return
Dans tous les cas, après un "end", il faut une action "utilisateur" pour relancer, ou alors peut-être un évènement timer. Si tu es en pas à pas, tu as ton évènement utilisateur - pas de problème. En continu, il faudrait, juste avant d'exécuter le "end", lancer un timer avec, disons 100 ms et on évènement qui fate ce que tu fais lorsque tu tapes espace (si j'ai bien compris) pour exécuter la ligne suivante... enfin, c'est peut-être une piste.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END EmptyMer 8 Sep 2010 - 19:46

Donc on est d'accord.
Je suis en colère. Je voulais remettre à jour les différents programmes pour les essais en ayant la bonne numérotation des lignes, j'ai plusieurs onglets d'ouverts, et je prends un programme pour en modifier un autre, etc..., et je ne peux sauvegarder les modifications, sans être certains que les modifications sont amélioration des essais précédentes. Et évidemment l'éditeur s'ait fermer sans que je sache pourquoi et tout est à reprendre.
Peut-être qu'un jour Jack comprendra un jour qu'on puisse en avoir mare de ces blocage pour un oui ou un non, où on perd tout. L'éditeur à onglet est une amélioration, mais la fermeture intempestif, ferme tout les programmes à la fois. Il n'y a pas moyen pour avoir quelque chose de plus stable. J'essaye bien d'en refaire un, mais refaire ou reprendre à chaque fois la même chose, ne me facilite pas le travail, et ça m'énerve, et ça me prend la tête, et encore le pire ça me décourage. J'avance à rien avec cet éditeur. Mes idées n'avancent pas.

Et puis ne répondez pas à cela, ça n'avancera à rien. J'aurai aimé, alors que le code que j'ai mis est un raccourcis, et n'est pas fini, avoir un avis sur le résultat. Une fois fini, on prend l'executable, on répond à la question de savoir quel numéro on peut donner aux objets, et après l'avoir chargé depuis le disque, on a son propre programme avec les outils de débogage. Pour l'instant je ne peux que m'arracher les cheveux. Par la suite depuis l'éditeur que j'ai commencé, il suffira d'appuyer sur un bouton pour avoir la même chose.

En voilà du baratin.
Revenir en haut Aller en bas
Contenu sponsorisé





Problème lorsque j'arrive au END Empty
MessageSujet: Re: Problème lorsque j'arrive au END   Problème lorsque j'arrive au END Empty

Revenir en haut Aller en bas
 
Problème lorsque j'arrive au END
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec select case Probleme réglé merci
» Problème avec la nouvelle fonction de kgf.
» Pour Klaus: problème avec kgf.dll.
» Problème de 3D.
» Problème avec la commande RemoveStringBetweenDelimiters.

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: