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.
Mode TRACE pour Panoramic - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Mode TRACE pour Panoramic - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Mode TRACE pour Panoramic - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Mode TRACE pour Panoramic - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Mode TRACE pour Panoramic - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Mode TRACE pour Panoramic - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Mode TRACE pour Panoramic - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Mode TRACE pour Panoramic - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Mode TRACE pour Panoramic - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Mode TRACE pour Panoramic - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Mode TRACE pour Panoramic - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Mode TRACE pour Panoramic - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Mode TRACE pour Panoramic - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Mode TRACE pour Panoramic - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Mode TRACE pour Panoramic - 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 : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

 

 Mode TRACE pour Panoramic

Aller en bas 
+2
Jean Claude
Nardo26
6 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptySam 25 Déc 2010 - 19:36

N'ayant pas de retour sur le programme, j'ai du recopier depuis le forum qui correspond à l'éditeur Panoramic pour vérifier que cela fonctionnait bien.
J'ai vu qu'il y avait un problème. Dommage que personne ne signale rien.

Ayant plusieurs versions, pour la mise au point, je n'ai pas pris la bonne. Ne travaillant plus avec l'éditeur Panoramic je ne l'ai pas vu tout de suite. Une partie du travail est déjà fait par le chargeur que j'utilise avec PsPad. Je vais donc apporter les modifications nécessaires.
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyDim 26 Déc 2010 - 9:22

J'ai enfin compris ce qui se passait.
Il y a des lignes de programme qui ont sautées, et je ne sais pas comment. De plus j'ai utilisé pour les testes, des petits programmes (pour les includes) et j'ai des fichiers ayant le même nom pour faire les testes avec un chemin différent. Le programme recomposé n'avait pas le bon chemin, et j'ai eu du mal avec tous ces mélanges de comprendre.
Apparemment cela marche, mais j'ai besoin de voir si vraiment tout est ok, avant de remettre une version finale.
300
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyDim 26 Déc 2010 - 11:26

D'après mes testes, la version de Panoramic est au point, et je viens de la mettre en ligne.
C'est la version qui se trouve avant le mode d'emploi.
Seul bémol que j'ai trouvé dans les testes, c'est un problème avec scancode, mais cela ne vient pas du débogueur.

Maintenant c'est à vous de me dire si cela marche chez vous.
313


Dernière édition par cosmos70 le Lun 27 Déc 2010 - 13:07, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyDim 26 Déc 2010 - 23:26

Cela me gène de relancer le post, mais malgré le nombre de visite, je n'ai aucune réaction.
Il m'importe peu de savoir que ce programme vous plaise ou non, chacun est libre de son opinion.
Le problème est si cela ne fonctionne pas chez vous, alors que cela fonctionne chez moi (je parle de la version pour l'éditeur Panoramic), j'aimerai le savoir maintenant, pendant que je m'y retrouve.
Ayant l'environnement qui convient maintenant sur mon ordi, il est pas toujours vrai, que le programme fonctionne, alors que cela n'a pas été fait sur le votre.
Je vais passer à autre chose. Après je ne suis pas sûr d'y revenir.
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyLun 27 Déc 2010 - 0:11

mise au point pour PsPad terminé.
C'est devenu le programme pour l'éditeur Panoramic. Le fonctionnement est le même, seule la méthode diffère.
Le loader a une fonction execute sur le programme, ce qui simplifie les choses.
Pour ma part, j'ai placé le débogueur (mot affreux) directement à la racine de C, et il faut bien mettre le chemin dans le loader à la ligne 20, pour la commande exécute.
jocolor Sleep
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyLun 27 Déc 2010 - 19:28

Bonsoir cosmos,
J'ai pas encore tout pigé concernant l'utilisation du debugger (je regarde le Pdf que tu as fait)
Donc rien de tel que de le lancer et vaille que vaille comme on dit Wink

Finalement, pour tester ton debugger, qu'elle version de ScriptPanoramic.js tu utilises ?
La version de base qui est sur mon site ou une version que tu as modifié?...

PS: au passage, j'ai modifié sur mon site, le formulaire de saisie de commentaires, normalement on ne devrait plus avoir de problème avec les caractères spéciaux... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyLun 27 Déc 2010 - 21:10

Bonsoir Nardo,
Le programme que j'utilise, n'est plus celui du zip., mais la version que j'ai mis pour Panoramic.

Le loader est celui que j'ai mis plus haut. Dans celui-ci, il faut indiquer le chemin (et le nom) du debogueur en fichier .exe (personnellement je l'ai placé directement à la racine du C

C'est tout ce qu'il y a à faire.
Lorsque tu cliques (pour toi: shift+F9) tu choisis le bouton mode TRACE, pour suivre les lignes du programme, ou exécution pour un fonctionnement normal.

Les modifications que je t'avais demandées concernent le loader complexe que j'ai fait, et dont j'ai un problème avec. Mais celui qui est sur le post plus haut, ne doit pas poser de problème

'----------------------------------'
en mode trace, ce sont les touches CTRL gauche ou droite qui ont étés choisis. Shift, si il y a 5 clics, on a un message pour les paramètres visuels, donc embétant. La touche espace a le problème qu'elle valide les boites messages, donc j'ai pris les touches contrôles.

Tu fais d'abord un essai comme cela, et si il faut, je commenterais.
@+
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyLun 27 Déc 2010 - 21:33

Ok Merci Cosmos,
Je jetterai un coup d'oeil demain, j'ai pas trop le tps ce soir.... Smile
A+
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMar 28 Déc 2010 - 13:15

Le programme "débogueur" vient de nouveau être modifié.
J'ai modifié pour les includes. On ne pouvait que faire un include de niveau 1
Maintenant un include peut en importer un autre.

De plus lorsque qu'on a des fichiers à lire, qui sont dans le même chemin, comme des images par exemple, il y avait une erreur. Cette erreur, je ne l'ai pas vérifié encore, mais je vais le faire, est peut-être le problème que j'ai rencontré lors de la lecture d'un memo, et qui n'avait pas de correspondance.

En première ligne, pour bien imposer le chemin, il faut mettre entre guillemet le nom du chemin complet.
J'ai fais en sorte que l'on puisse par exemple avoir un programme comme:
C:\TESTE\essai.bas pouvoir mettre
"C:\TESTE\essai.bas"
"C:\TESTE\"
ou "C:\TESTE"
Le programme rectifie en "C:\TESTE\"

Pour faire des essais avec des includes, et voir le résultat, voici 3 petits programmes:
Code:
' programme d'essai  Panoramic "C:\TESTE\M_au _P_TRACE"
 ' **TRON**
 label branche
 width 0,600 :left 0,600 :height 0,200:caption 0,"teste prg.bas"
 dim a% , a$ ,b%,b$
 memo 1 :on_click 1,branche
 item_add 1,"voyons voir"
 #include "C:\TESTE\inclusion.bas"
 for a%=1 to 10
  item_add 1,str$(a%)
 next a%
end

branche:
message "click sur le memo"
return

C'est celui-ci qu'il faut lancer avec le débogueur.
Les deux autres (évidemment il faudra mettre les chemins correspondant dans les appels à #include)
Code:

rem "ceci est un essai d'inclusion dans un autre programme"
#include "C:\TESTE\surface.bas"
message "appel include surface, et surface%="+str$(surface%)

et

Code:

'  Panoramic C:\TESTE\PROCEDURE\surface.bas
dim long%,larg%,surface%
' préfice suplémentaire Surface
 long%=125:larg%=100

 message "long%="+str$(long%)+"  larg%="+ str$(larg%)
 surface%=long%  *  larg%
441
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMar 28 Déc 2010 - 13:33

Je viens de remodifier le programme. Les caractères "\" sautaient dans le listing, et je viens de les remplacer par chr$(92).
Ayant repris le programme depuis le forum, je comprend pourquoi, j'avais des problèmes. 446
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMar 28 Déc 2010 - 19:04

J'ai actuellement 8 onglets d'ouvert pour ce programme. Vu que personne ne donne suite, je suppose que le programme fonctionne.
Donc demain matin, si il n'y a pas de réponse, je pourrais enfin remettre tout à zéro pour partir sur autre chose. Si il y a un problème, dîtes le moi maintenant que je puisse faire ce qu'il faut et avoir l'esprit tranquille.
Merci de votre compréhension.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMar 28 Déc 2010 - 19:49

Bonsoir cosmos !

Juste en coup de vent : Désolé mais obligations familiale oblige, je ne peux pas pour l'instant tester ton programme Sad
Dès que la maison sera redevenue un peu plus calme Wink je me replonge dans ton debugger ! Ça m'intéresse !! Smile
Ya vraiment personne qui peut donner un coup de main à Cosmos ?
C'est vrai, qu'il est un peu seul depuis quelques temps...

A+
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMar 28 Déc 2010 - 23:31

Merci Nardo
sur le post du 26 décembre à 9.22 H, j'ai mis un nombre en bas du post pour voir comment les choses évoluaient avec les Panoramiciens. C'est celui qui correspondait aux nombres de visite sur le post. Il suffit de voir la différence, pour avoir envie de se poser des questions sur le partage des membres de ce forum.

Certains d'entre vous peuvent penser que je suis pas assez intelligent pour comprendre. Tout le monde n'est pas disponible, et moi le premier, et même je ne suis pas preneur sur tout, mais la différence entre ce qui a été lu et les interventions, c'est à dire rien à part celle de Nardo, montre que le partage entre Panoramicien n'est pas égal.

Je pense que c'est le dernier projet que je mets en ligne. Vous n'êtes pas aimables. Ne me donnez pas d'excuses, elles seront inventées.

Il y a plusieurs jour que la version chez moi fonctionnait, mais c'est avec le forum que j'avais un problème pour le programme. Je suis bloquait dessus, sans rien savoir de ce que cela donne. Je pense qu'on a été au bout des choses.

Joyeuses années 2011
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyJeu 30 Déc 2010 - 12:57

J'ai du apporter une modification au programme qui concerne le débogueur, que vous trouverez dans
version pour éditeur Panoramic
Toujours le même problème, une ligne avec "\" que je n'avais pas modifié en chr$(92), pour passer la barrière du forum, qui supprime ce caractère.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 5 Jan 2011 - 21:58

Ok cosmos,
me voici de retour !
Je vais enfin pouvoir me pencher sur ton debugger...
Je te tiens au courant !
Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 19:55

Bonsoir,

En voyant le commentaire de Nardo sur mon débogueur sur un post parallèle, j'ai un problème avec. Ce n'est pas une question d'erreur, ou de programmation.

Je n'ouvre pas de sujet spécifique, à moins qu'on soit d'accord pour en parler, mais (je le savais dès le départ), cela concerne les timers.

Mon débogueur est détourné par les timer. Pour suivre un ensemble de lignes, il me manque une instruction: celle qui arrête tous les timers, et une qui les remette tel qu'ils étaient avant. Il m'est difficile de mettre timer_off, et de le remettre à ON, vu que je n'ai pas d'instruction qui me dit si un timer est déjà bloqué ou pas. Je pense que c'est un manque à Panoramic.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 20:13

J'ai bien peur que les timers soient un pb insoluble...
Sad
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 20:27

Pas si Jack ajoute des commandes du type
GLOBAL_TIMER_OFF : ' désactive tous les timers
GLOBAL_TIMER_ON : ' réactive tous les timers actifs avant GLOBAL_TIMER_OFF
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 21:38

Je dis peut-être une bêtise, mais si on parle de désactiver ou réactiver TOUS les Timers, on peut bien simuler le global_timer on ou off avec une petite boucle, si on regroupe les numéros des timers:
Code:
for i% = t1 to tn
    timer_on i%
next i%
et de même
Code:
for i% = t1 to tn
    timer_off i%
next i%
On n'a pas à se soucier si un timer est actif ou non, ça marche dans la mesure où Panoramic ne fait pas d'erreur si on fait timer_on sur un timer déjà actif, ou timer_off sur un timer déjà désactivé.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 21:50

Je ne parle pas d'un GLOBAL_TIMER_XXX
mais du fait de debugger du code en pas à pas... alors que l'applic que l'on débug est sensée
fonctionner avec des timer actifs... ça fausse tout...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 22:23

JL35. Le débogueur est sensé regarder un programme quelconque, et pas seulement que les miens.

Il me parait difficile de savoir si un programme a un, ou des tas de timer. Tel timer peut être actif pour une partie de programme, et tel autre pour un autre. Je me vois mal de faire un tableau pour savoir à quel moment lorsque timer_on ou timer_off intervient, je vais modifier le flag correspondant. Surtout si en plus il y a des testes.

Ce n'est pas le but de mon débogueur. Il est sensé montrer la ligne au moment où le programme la parcourt, et éventuellement montrer le contenu des variables de la ligne. Pas de modifier le programme.

Déjà que je suis intervenu pour mettre les variables en remarques, et les rassembler en début de programme, pour que mon débogueur puisse avoir la liste de celles-ci et être déclarées au moment où elles sont lues. Ce programme a été commencé dans cette version vers juin ou juillet. Il a été ensuite repris plusieurs mois après le plantage de l’Éditeur Panoramic, et j'avais perdu une grosse partie. Il a des reste de cette version que je n'ai pas modifié. Si vous voyez le code généré par le débogueur, vous verrez des lignes du genre:
Citation :
q$="726|722":gosub q
et bien la première série de nombre ne sert à rien. Celà faisait partie de la première version, et j'ai pas eu le courage de les enlever en modifiant le programme. A la reprise du programme j'ai fait autrement. Aujourd'hui avec les nouvelles instructions: variable() et label(), peut-être qu'il m'aurait été possible d'éviter de détourner les déclarations de variables.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyMer 19 Jan 2011 - 22:35

Ah pardon, j'avoue que je n'ai pas lu tout le topic et je ne voyais pas ça sous l'angle du deboggage, là ça change tout.
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyVen 21 Jan 2011 - 11:48

Je viens d'apporter une amélioration de mon débogueur

J'ai rajouté un compteur: celui-ci s'incrémente à chaque lecture de ligne. Attention, si il y a plusieurs instructions sur la même ligne, cela ne compte que pour un.

Mine de rien, ce compteur, que j'utilisais dans la 1ère version (autre que ce post) ma fais changer ma méthode de programmation. Ainsi pour un programme donné sur l'affichage d'une page de texte, à mes tout début, le compteur allait jusqu'à si je me souviens bien, 70000 lignes pour initialiser et afficher une page. Lorsque j'ai repris le même type de programme, je suis descendu à moins de 5000.
Mode TRACE pour Panoramic - Page 2 Traceonoff

Ensuite j'ai rajouté 2 instructions directes:
mark_on trace et mark_off trace
Ce sont des commandes basic, Il s'agit en fait d'un check invisible qui est initialisé à 9971, donc check 9971, objet à ne pas utiliser, ainsi que la variable trace

Ainsi si vous incluez à la première ligne de votre programme: mark_off trace , vous avez l'écran du bas en gris.
si vous incluez mark_on trace vous avez l'écran vert, et vous êtes en mode pas à pas.

il est évident que cela ne fonctionne qu'avec le debogueur, sinon vous aurez une erreur

Il est toujours possible de mettre une ligne de ce type en début de programme:
dim trace:trace=9971:check trace:hide trace:
9971 est le numéro du check, mais si le numéro n'est pas un numéro d'objet c'est aussi valable.
Ainsi pour ne pas se servir du débogueur provisoirement, cette ligne évite l'erreur, et pour se servir du débogueur, il suffit de la mettre en commentaire

Je viens d'apporter une modification. Au départ le programme est initialiser à OFF, donc on a l'écran gris. Ensuite le mode pas à pas se fait en déplaçant le curseur vers la droite, ou en incluant mark_on trace.
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptyVen 21 Jan 2011 - 11:51

Je poste cette version ici, cela évitera de chercher dans toutes les pages.
mais l'aide est toujours la même.



Code:

' Panoramic DEBOGAGE  *** Auteur Cosmos70 ***
' modifié le 22 avril 2011  IL VOUS APPARTIENDRA DE MODIFIER LE CHEMIN LIGNE: 188
' A vous de voir si vous préférez enregistrer dans C:\temp\trace.bas, ou copier le programme et le lancer
' à partir du programme compilé. Si vous exécutez à partir de l'éditeur, la fonction CHAIN laisse
' l'éclair en gris. VOIR les lignes 14 et 15 pour le choix
if dir_exists("c:\temp") = 0 then dir_make "C:\temp"
dim a%,b%,c%,a$,b$ ,q ,include% ,flag_include% ,c$ ,v% ,d% ,e% ,labele$,d$ ,e$ ,lig_a%,dim%
dim f$ , dim_er% , dossier_tron$ : dossier_tron$="C:\temp"+chr$(92)
  hide 0
  width 0,700:height 0,screen_y:left 0,200  :caption 0,"DEBOGUEUR.bas" :' mise à hide maintenant
memo 5:width 5,1500: ' obligé de passer par un memo pour copier le presse papier
dlist 3
' file_load 5,"C:\temp\trace.bas"  :hide 5
clipboard_paste 5
' copier depuis le forum, je retire la ligne qui pourrait avoir "Code:"
if count(5)>0
  for a%=1 to 3
      a$=item_read$(5,a%)
      if a$="Code:"
        repeat
            item_delete 5,a%
            a%=a%-1
        until a%=0
        exit_for
      end_if
  next a%
end_if
file_save 5,"C:\temp\trace.bas"
file_load 3,"C:\temp\trace.bas"

' on regarde si chaque ligne ne commence par ":". Normalement ça ne provoque pas d'erreur
' sauf pour la méthode employée
for a%=1 to count(3)
  a$=item_read$(3,a%)
  if left$(trim$(a$),1) =":"
      b%=instr(a$,":")
      a$=left$(a$,b%-1)+mid$(a$,b%+1,len(a$))
      item_delete 3,a%:item_insert 3,a%,a$
  end_if
next a%

' on regarde si le chemin est prévu dans la ligne 1
f$=item_read$(5,1)
if instr(f$,chr$(34))>0
  f$=trim$(mid$(f$,instr(f$,chr$(34))+1,100))
  f$=left$(f$,len(f$)-1) :' pour retirer le guillemet.
  ' maintenant on vérifie que le mot "bas." est absent
  if right$(f$,4)=".bas"
      for a%=len(f$) to 1 step -1
        b$=mid$(f$,a%,1) : if b$=chr$(92) then f$=left$(f$,a%):exit_for
      next a%
  end_if
  if right$(f$,1)<>chr$(92) then f$=f$+chr$(92)
  dir_change f$
end_if

dlist  2
dlist  1
dlist  4 :' nom des includes'    :left 4,300
dlist  6 :' mettre les includes ici, le temps de les intégrer dans 1, afin de pouvoir lire 1 include
        ' compris dans cette include, et qui sera lu dans 1, puisque si cette ligne existe elle
        ' n''est pas encore lu

dlist 100
    ' je mets le label de la procédure, et les dims de départ
item_add 1,"DIM q$ ,dossier_tron$: dossier_tron$=" + chr$(34) + dossier_tron$ + chr$(34) + ": LABEL q,liste_variable,suite_end:gosub liste_variable"

' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
'  voir si #include
  if count(3)> 1
      b%=0 :' pour numéroter les #include
      a%=1
      repeat
        a$=item_read$(3,a%)
        ' je rajoute éventuellement les includes
        if left$(upper$(trim$(a$)),8)="#INCLUDE"
            v%=instr(upper$(a$),"#INCLUDE ")  :b% = b% + 1 :c$ = mid$(a$, v% + 9 , 80) : item_add 4,trim$(a$)
            item_add 1,"' #" + str$(b%) + " dépilé: " + trim$(a$)
            include%=1
            file_add 6, c$ :lig_a%=a%+1
            item_insert 3,a%+1,"' ==== FIN du programme #INCLUDE dépilé: "+c$+"  #"+str$(b%)+" ===="
            for c%=1 to count(6)
              a$=item_read$(6,1) : item_insert 3,lig_a%,a$ : item_delete 6,1:lig_a%=lig_a%+1
            next c%
        else
            item_add 1,a$
        end_if
        a%=a%+1
      until a% > count(3) or scancode=27
  end_if
  item_add 1,""
  file_save 4,dossier_tron$+"list_include.txt"
' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
' donc à suivre
item_insert 1,2,"timer_off objeTron%+20:delete objeTron%+20" : ' le timer ne sert qu'à passer le END,et est détruit
  ' maintenant il faudrait rechercher tous les DIM et les définir de suite, et mettre les autres en commentaires.
  ' la ligne 1 ne compte pas, elle vient d'être rajouté pour ce programme
  d$="dim " :dim%=0
  for a%=2 to count(1)
      a$=item_read$(1,a%) :  dim_er%=0
      b%=instr(lower$(trim$(a$)),"dim ")
      if b%>0
        dim%=1
        v%= instr(lower$(trim$(a$)),chr$(34))
        if v%>0 and v%<b%
            dim_er%=1
        else
            if v%>0
              dim_er%=1
            end_if
        end_if
      end_if

      if dim_er%=0
        if instr(a$,"' ")>0 and instr(a$,"' ") < b% then dim_er%=1
        if instr(lower$(a$),"rem")>0 and instr(lower$(a$),"rem") < b% then dim_er%=1
      end_if

      if b%>0 and dim_er%=0
        b$=mid$(a$,b%,900)
        c%=instr(b$,":")
        if c%>0
            c$=mid$(b$,c%,900)
            b$=left$(b$,c%-1)
            e$=left$(a$,b%-1)+c$+":' "+left$(b$,c%-1)
            if left$(trim$(e$),1)=":" then e$=mid$(trim$(e$),2,900)
        else
            e$="' "+b$
        end_if
        if len(d$)=4
            d$=d$ + mid$(trim$(b$),5,900)
        else
            d$=d$ + ","+ mid$(trim$(b$),5,900)
        end_if
        item_delete 1,a%
        item_insert 1,a%,e$
      end_if
  next a%
  if dim%=1
      item_insert 1,2,d$ + ":timer objeTron%+20:on_timer objeTron%+20,suite_end:end"
  else
      item_insert 1,2,"timer objeTron%+20:on_timer objeTron%+20,suite_end:end"
  end_if

  item_insert 1,3,"suite_end:"
  ' ------------------------------------------------------------
  ' dans d$, on a toutes les variables, donc maintenant il faut les mettre en tableaux
  d$=mid$(d$,4,900)
  clear 2
  repeat
      b%=instr(d$,",")
      if b%>0
        b$=trim$(left$(d$,b%-1))
        if b$<>"" and instr(b$,"(")=0 then item_add 100,b$
        d$=trim$(right$(d$,len(d$)-b%))
        if instr(d$,"(")< instr(d$,",") then d$=mid$(d$,instr(d$,")")+1,900):if left$(d$,1)="," then d$=mid$(d$,2,900)
      else
        b$=d$
        if instr(b$,"(")=0 then item_add 100,b$
      end_if
  until b%=0
  ' je viens de composer le programme

' ----------------------ici on met en list les DIM -----------------------------
  ' je mets les DIM en liste
  rem " recherche des DIM"
  for a%=1 to count(1)
      a$=trim$(item_read$(1,a%))
      if upper$(left$(trim$(a$),4))="DIM "
        a$=trim$(right$(a$,len(a$)-4))
        b%=instr(a$,":")
        if b%>0 then a$=trim$(left$(a$,b%-1))
        b$=a$
      end_if
  next a%
  sort 100
c%=0:include%=0: d%=-3 :b%=0
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
' outils de tracage
item_add 2,"error_french : ' Panoramic '"

item_add 2,"  ' ________INITIALISATION de départ_________'"
item_add 2,"  dim objeTron% ,q,trace:objeTron%=9950:trace=objeTron%+22"
item_add 2,"  label q2 , q3 , q4 , q5 , q6 ,q7, q_fin , q_variable , q_sort_controle : dim q% , qd% , q_trace$ , q_trace% ,q_variable% , q_len% ,q_spin% , q_retour_variable% , q_b%, resss%,q_count%,q_tron%,q_fin% "
item_add 2,"  '  ___FORM du bas pour contrôler et voir la ligne___'"
item_add 2,"  form      objeTron%  :width objeTron%,screen_x: height objeTron%,90:top objeTron%,screen_y-110 : border_hide objeTron%"
item_add 2,"                          color objeTron%,214,214,214:command_target_is objeTron%"
item_add 2,"dll_on " + chr$(34) + "KGF.dll"+chr$(34)
item_add 2,"  resss% = dll_call2("+chr$(34)+"WindowTopMost"+chr$(34)+",handle( objeTron% ),1):dll_off "
item_add 2,"  edit      objeTron%+ 1:top objeTron%+1,height(objeTron%)-60:left objeTron%+1,90:font_size objeTron%+1,12:width objeTron%+1,width(objeTron%)-100"
item_add 2,"            color objeTron%+1,255,255,150:font_bold objeTron%+1:font_name objeTron%+1,"+chr$(34)+"Bitstream Vera Sans Mono"+chr$(34)+":font_color objeTron%+1,0,0,255"
item_add 2,"  alpha    objeTron%+15:top objeTron%+15,55:left objeTron%+15,10:font_bold objeTron%+15:font_name objeTron%+15,"+chr$(34)+"Bitstream Vera Sans Mono"+chr$(34)+":font_size objeTron%+15,12"
item_add 2,"  container_option objeTron%+2:top objeTron%+2,height(objeTron%)-90:width objeTron%+2,200:height objeTron%+2,30:left objeTron%+2,10"
item_add 2,"  option    objeTron%+ 3:parent objeTron%+3,objeTron%+2:caption objeTron%+3,"+chr$(34)+"bloque"+chr$(34)+":width objeTron%+3,50:top objeTron%+3,8"
item_add 2,"  option    objeTron%+ 4:parent objeTron%+4,objeTron%+2:caption objeTron%+4,"+chr$(34)+"continue"+chr$(34)+":width objeTron%+4,60:left objeTron%+4,70 :top objeTron%+4,8"
item_add 2,"  option    objeTron%+ 5:parent objeTron%+5,objeTron%+2:caption objeTron%+5,"+chr$(34)+"boucle"+chr$(34)+":width objeTron%+5,50:left objeTron%+5,140:top objeTron%+5,8"
item_add 2,"  scroll_bar objeTron%+6:left objeTron%+6,380:top objeTron%+6,height(objeTron%)-80:height objeTron%+6,15:min objeTron%+6,0:max objeTron%+6,5000"
item_add 2,"                          width objeTron%+6,width(objeTron%)-430:position objeTron%+6,0"
item_add 2,"  button    objeTron%+21:left objeTron%+21,335:width objeTron%+21,40:caption objeTron%+21,"+chr$(34)+"T/V"+chr$(34)+":height objeTron%+21,20"
item_add 2,"  edit      objeTron%+16:width  objeTron%+16,2:height  objeTron%+16,15:left objeTron%+16,450:color objeTron%+16,255,0,0"
item_add 2,"  check    objeTron%+ 7:parent objeTron%+7,objeTron%:left objeTron%+7,220:width objeTron%+7,60:height objeTron%+7,20:caption objeTron%+7,"+chr$(34)+"variables"+chr$(34)+":' hide objeTron%+7"
item_add 2,"                          top objeTron%+7,height(objeTron%)-80"
item_add 2,"  button    objeTron%+ 8:parent objeTron%+8,objeTron%:left objeTron%+8,290:width objeTron%+8,40:height objeTron%+8,20:caption objeTron%+8,"+chr$(34)+"STOP"+chr$(34)+""
item_add 2,"                          top objeTron%+8,height(objeTron%)-80"
item_add 2,"  edit      objeTron%+14:top objeTron%+14,30 :width objeTron%+14,80:font_size objeTron%+14,12:font_bold objeTron%+14:color objeTron%+14,0,0,0:font_color objeTron%+14,255,255,255"
item_add 2,"  ' -----------------form pour présenter une aide de départ--------"
item_add 2,"  form      objeTron%+18:hide objeTron%+18:width objeTron%+18,620:height objeTron%+18,550:border_small objeTron%+18"
item_add 2,"                          top objeTron%+18,250:left objeTron%+18,screen_x / 2 -150"
item_add 2,"  memo      objeTron%+19:hide objeTron%+19:parent objeTron%+19,objeTron%+18:font_size objeTron%+18,10:print_target_is objeTron%+19 :full_space objeTron%+19"
item_add 2,"              print "+chr$(34)+"bloque  : avance par appuie de CTRL droit ou gauche"+chr$(34)
item_add 2,"              print "+chr$(34)+"continue: les lignes du programme avancent sans discontinuées. Le défilement des lignes, dépendent du curseur."+chr$(34)
item_add 2,"              print "+chr$(34)+"selon l'emplacement du curseur, des différences apparaissent. A droit du trait rouge, seul le temps diffère."+chr$(34)
item_add 2,"              print "+chr$(34)+"Si le check des variables est coché: elles s'affichent lorsqu'une variable est présente dans la ligne"+chr$(34)
item_add 2,"              print "+chr$(34)+"Si le curseur est à droite du trait et qu'une variable est présente, une fenêtre blanche apparait. Il faut cliquer sur CTRL pour continuer."+chr$(34)
item_add 2,"              print "+chr$(34)+"au relachement de la touche , la fenêtre apparait en jaune avec les nouvelles valeurs des variables à l'exécution du code"+chr$(34)
item_add 2,"              print "+chr$(34)+"seul la touche CTRL Droite permet de continuer. Ainsi, si on laisse la touche droite enfoncée, les lignes et l'exécution du programme se fait en continue avec un temps d'attente réglé par le curseur"+chr$(34)
item_add 2,"              print "+chr$(34)+"Si le curseur se trouve à gauche du trait rouge, cette 2ème fenêtre n'apparait pas. Si le curseur est à zéro, alors, le programme s'éxécute sans aucun teste, afin de passer les boucles (exemple :for a%=1 to 10000)"+chr$(34)
item_add 2,"              print "+chr$(34)+"l'appuie sur boucle, fait selon le cas, toutes les instructions à l'intérieur d'une boucle sans intéruption, ou parfois???, s'arrète une fois la boucle finie"+chr$(34)
item_add 2,"              print "+chr$(34)+"SI UNE ERREUR INTERVIENT: le message correspond à l'erreur, mais le numéro de la ligne est celui de la case noir. Si la case est rouge, on a un 1er numéro: c'est celui d'un include. Les includes sont numérotés à la suite d'apparition dans les lignes du programme"+chr$(34)
item_add 2,"              print "+chr$(34)+"le numéro après les deux points, est celui de la ligne du programme include. Le nom de l'include apparait en bas à gauche."+chr$(34)
item_add 2,"              print "+chr$(34)+"pour pouvoir arréter le programme avec STOP dans une boucle, il faut que la fin de la boucle soit sur une autre ligne. Ainsi:"+chr$(34)
item_add 2,"              print "+chr$(34)+"> for a%=1 to 10000: instructions :next a% < ne sera pas intercepté, alors que:"+chr$(34)
item_add 2,"              print "+chr$(34)+"for a%=1 to 10000"+chr$(34)+":print "+chr$(34)+"next a%"+chr$(34)+":print "+chr$(34)+"cette boucle pourra être intercepté. Pensez-y pendant la conception du code"+chr$(34)
item_add 2,"              print "+chr$(34)+"de plus, si le curseur est à zéro, il n'y a pas d'interception. L'éxécution se continu. Donc dans ce cas déplacer le curseur sur la droite du trait pour ravoir le contrôle."+chr$(34)
item_add 2,"              print_target_is 0"
item_add 2,"  ' __FORM voir les variables '"
item_add 2,"  form      objeTron%+10:width objeTron%+10,400:height objeTron%+10,150:top objeTron%+10,screen_y - 300 : border_small objeTron%+10"
item_add 2,"  list      objeTron%+ 9:parent objeTron%+9,objeTron%+10 : width objeTron%+9,width(objeTron%)-50 : height objeTron%,150:full_space objeTron%+9"
item_add 2,"                          font_size objeTron%+9,12 : font_bold objeTron%+9 : font_color objeTron%+9,255,0,0:caption objeTron%+10,"+chr$(34)+"AVANT >Space<"
item_add 2,"  dlist    objeTron%+12:file_load objeTron%+12,"+chr$(34)+dossier_tron$+"debug.bas"+chr$(34)+" : ' pour pouvoir lire les lignes du fichier'"
item_add 2,"  q%=-1 : mark_on objeTron%+3 : on_click objeTron%+3,q5  : on_click objeTron%+4,q5 : on_click objeTron%+5,q5"
item_add 2,"  on_click objeTron%+8,q_fin    : on_click objeTron%+7,q6  :  show objeTron%+7        "
item_add 2,"  command_target_is 0 "
item_add 2,"  dlist    objeTron%+13:file_load objeTron%+13,"+chr$(34)+dossier_tron$+"list_include.txt"+ chr$(34)+" : ' liste des includes"
item_add 2,"' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
item_add 2,"  check trace:hide trace:mark_off trace:q_tron%=0 "
' maintenant j'y inclus la partie numérotées
for a%=1 to count (1)
    a$=item_read$(1,a%)
    if trim$(a$)="q:" then b%=0 :' on ne liste pas la partie trace
    if b%=1
      if trim$(a$)=""
          item_add 2,a$
          if flag_include%=0
            d%=d%+1
          else
            c%=c%+1
          end_if
      else
          if left$(a$,3)="' #"
            include%=include%+1:flag_include%=1:c%=1 : d%=d%+1 :' il y a un écart de ligne avec include'
            item_add 2,"q$="+chr$(34) +str$(a%)+chr$(1)+str$(d%-1)+chr$(34)+":gosub q:"+a$
          else
            if flag_include%=0
                item_add 2,"q$="+chr$(34) +str$(a%)+chr$(1)+str$(d%)+chr$(34)+":gosub q:"+a$
                d%=d%+1
            else
                item_add 2,"q$="+chr$(34) +str$(a%)+chr$(1)+"#"+str$(include%)+":"+str$(c%)+chr$(34)+":gosub q:"+a$
                c%=c%+1
                if instr(a$,"' ==== FIN du programme #INCLUDE dépilé: ")>0 then flag_include%=0
            end_if
          end_if
      end_if
    else
      item_add 2,a$
      d%=d%+1
    end_if
    if a%=4 then b%=1
next a%
item_add 2,""
item_add 2,"end :' pour le cas où il n'en aurait pas"
    ' je fais une procédure de sélection des variables à montrer
' --------------------ici mise en place des variables à montrer
rem "rajoute variables"

item_add 2,"q_variable:"
item_add 2,"select q_variable%" :b%=1
for a%=1 to count(100)
  a$=item_read$(100,a%)
  if a$<>""
  if right$(a$,1) <>")"
      if right$(a$,1)="$"
        item_add 2,"  case "+str$(b%)+" : item_add objeTron%+9,"+ chr$(34) +" "+ trim$(a$) + " = " + chr$(34) + "+" + a$
      else
        item_add 2,"  case "+str$(b%)+" : item_add objeTron%+9,"+ chr$(34)+" "+ trim$(a$) + " = " + chr$(34) + "+ str$("+a$+")"
      end_if
      b%=b%+1
  end_if
  end_if
next a%
item_add 2,"end_select"
item_add 2,"return"
' je rajoute la mise mémoire de la liste des variables
item_add 2,"liste_variable:":item_add 2,"  dlist objeTron%+11"
for a%=1 to count(100)
  if item_read$(100,a%)<>""
  if right$(item_read$(100,a%),1 ) <>")"
      item_add 2,"  item_add objeTron%+11,"+chr$(34)+item_read$(100,a%)+chr$(34)
  end_if
  end_if
next a%
item_add 2,"Return"
    ' maintenant je dois incruster les procédures traces mise au départ en texte
    rem "partie TRON"

item_add 2,"' =============================================================================="
item_add 2,"' ==============procédure TRON TRACE============================================"
item_add 2,"q:"
item_add 2,"' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
item_add 2,"' _______CONTRÔLE__________'"
item_add 2,"  if q_tron%<>checked(trace)"
item_add 2,"    q_tron%=checked(trace) "
item_add 2,"    if q_tron%=1 then position objeTron%+6,700:else:position objeTron%+6,0"
item_add 2,"  end_if"
item_add 2,"  if q_spin% <> position(objeTron%+6)"
item_add 2,"      if position(objeTron%+6) <500"
item_add 2,"        color objeTron%,255,204,255"
item_add 2,"        if position(objeTron%+6) > 0 then position objeTron%+6,200"
item_add 2,"      end_if"
item_add 2,"      if position(objeTron%+6) =0    then color objeTron%,214,214,214"
item_add 2,"      if position(objeTron%+6) >499  then color objeTron%,181,207,181"
item_add 2,"      q_spin%=position(objeTron%+6)"
item_add 2,"  end_if"
item_add 2,"q_count%=q_count%+1"
item_add 2,"  if position(objeTron%+6)=0 then caption objeTron%+15,mid$(q$ ,instr(q$, chr$(1))+1, 5)+" +chr$(34)+"  compteur:" +chr$(34)+"+str$(q_count%):goto q_sort_controle : ' on évite tout '"
item_add 2,""
item_add 2,"  ' affiche les variables après exécution de la ligne, pour voir les changements"
item_add 2,"  if q_retour_variable%=-1 and count(objeTron%+9)> 0 and q_spin%>500"
item_add 2,"      color objeTron%+9,255,255,0 :caption objeTron%+10,"+chr$(34)+"RETOUR >Ctrl Droit<"+chr$(34)+":hint objeTron%+9,"+chr$(34)+"cliquez sur Ctrl Droit pour continuer"+chr$(34)
item_add 2,"      gosub q6 : q_retour_variable%=0"
item_add 2,"      repeat : until  scancode=163 : wait 50:' Ctrl"
item_add 2,"      color objeTron%+9,255,255,255"
item_add 2,"  end_if"
item_add 2,""
item_add 2,"  if instr(q$,"+chr$(34)+"#"+chr$(34)+") > 0 :' affiche le nom du programme #include"
item_add 2,"      q%=instr(q$,"+chr$(34)+"#"+chr$(34)+") : q=instr(q$,"+chr$(34)+":"+chr$(34)+")"
item_add 2,"      caption objeTron%+15,item_read$(objeTron%+13, val(mid$(q$,q%+1,q-q%-1)) )"+chr$(34)+"  compteur:" +chr$(34)+"+str$(q_count%)"
item_add 2,"  else"
item_add 2,"      caption objeTron%+15,"+chr$(34)+"programme  -  compteur:" +chr$(34)+"+str$(q_count%)"
item_add 2,"  end_if"
item_add 2,""
item_add 2,"  ' recherche de la ligne à afficher'"
item_add 2,"  show objeTron%"
item_add 2,"  for q_trace%=1 to count(objeTron%+12) : if instr(item_read$(objeTron%+12,q_trace%),q$)>0 then exit_for"
item_add 2,"  next q_trace%"
item_add 2,"  if q_trace%<=count(objeTron%+12) then q= q_trace%"
item_add 2,""
item_add 2,"  if q>0 then q_trace$ = item_read$(objeTron%+12,q)"
item_add 2,"  q_trace$ = mid$(q_trace$,instr(q_trace$,"+chr$(34)+"gosub q:"+chr$(34)+")+8,300 )"
item_add 2,"  if instr(q$,"+chr$(34)+"#"+chr$(34)+") >0 then color objeTron%+14,255,0,0: else : color objeTron%+14,0,0,0"
item_add 2,""
item_add 2,"  ' affichage du numéro de ligne et du listage de laligne'"
item_add 2,"  text objeTron%+14,mid$(q$,instr( q$,chr$(1))+1,20)"
item_add 2,"  text objeTron%+1, trim$(mid$( q_trace$ ,instr(q_trace$,chr$(1))+1,150)) :display"
item_add 2,"  if objeTron%+6<500 then goto q_sort_controle"
item_add 2,""
item_add 2,"  ' décision"
item_add 2,"  if checked(objeTron%+7) = 0 then hide objeTron%+10  :' affichage des variables annulée"
item_add 2,"  if scancode=13 then q%=-1: mark_on objeTron%+3 : repeat:until scancode=0"
item_add 2,"  if checked(objeTron%+7)=1 then gosub q6  :' check variables'"
item_add 2,"  if checked(objeTron%+3)=1 then q%=-1      :' option bloque'"
item_add 2,"  if checked(objeTron%+4)=1 then q%=0      :' option continue'"
item_add 2,"  if checked(objeTron%+5)=1 then q%=1      :' option boucle'"
item_add 2,"  if clicked(objeTron%+8)=1 then goto q_fin  :' button stop'"
item_add 2,"  if clicked(objeTron%+9)=1 then gosub q6  :' list"
item_add 2,"  if clicked(objeTron%+21)=1 then gosub q7 :' list entier"
item_add 2,""
item_add 2,"  if q%=-1 then gosub q2"
item_add 2,"  if q%= 1 then gosub q4"
item_add 2,"q_sort_controle:"
item_add 2,"return"
item_add 2,"' =============================================================================="
item_add 2,"q1:"
item_add 2,"file_save 20,"+chr$(34)+"copier_texte.txt"+chr$(34)+""
item_add 2,"return"
item_add 2,"q2:"
item_add 2,"q%=-1"
item_add 2,"  repeat"
item_add 2,"    if clicked(objeTron%+8)=1 then goto q_fin"
item_add 2,"    if clicked(objeTron%+9)=1 then gosub q6"
item_add 2,"    if checked(objeTron%+5 )=0 and position(objeTron%+6) > 500 then wait position(objeTron%+6)-499"
item_add 2,"    if clicked(objeTron%+8)=1 then goto q_fin"
item_add 2,"    if clicked(objeTron%+9)=1 then gosub q6"
item_add 2,"  until scancode =162 or scancode = 163 or scancode=27 or scancode=13"
item_add 2,"  if scancode=13 then q%=0:mark_on objeTron%+4 :repeat:until scancode=0"
item_add 2,"  if scancode = 27 then goto q_fin"
item_add 2,"return"
item_add 2,"q3:"
item_add 2,"repeat"
item_add 2,"  if clicked(objeTron%+8)=1 then goto q_fin"
item_add 2,"  if clicked(objeTron%+9)=1 then gosub q6"
item_add 2,"until scancode=0"
item_add 2,"q%=0"
item_add 2,"return"
item_add 2,"q4:"
item_add 2,"q%=1"
item_add 2,"if instr(upper$(q_trace$),"+chr$(34)+"UNTIL"+chr$(34)+")>0 or instr(upper$(q_trace$),"+chr$(34)+"NEXT"+chr$(34)+")>0 or instr(upper$(q_trace$),"+chr$(34)+"END_WHILE"+chr$(34)+")>0"
item_add 2,"      repeat"
item_add 2,"        if clicked(objeTron%+8)=1 then goto q_fin"
item_add 2,"      until scancode =162 or scancode = 163 or scancode=27"
item_add 2,"      if clicked(objeTron%+9)=1 then gosub q6  :' variable'"
item_add 2,"end_if"
item_add 2,"return"
item_add 2,"q5:"
item_add 2,"  if checked(objeTron%+3)=1 then q%=-1"
item_add 2,"  if checked(objeTron%+4)=1 then q%=0"
item_add 2,"  if checked(objeTron%+5)=1 then q%=1"
item_add 2,"return"
item_add 2,""
item_add 2,"q6:"
item_add 2,"' variable"
item_add 2,"  clear objeTron%+9 :q_len%=0"
item_add 2,"  for qd% = count(objeTron%+11) to 1 step -1"
item_add 2,"      if instr(q_trace$,item_read$(objeTron% + 11, qd%))>0"
item_add 2,"        q_variable%=qd% : gosub q_variable"
item_add 2,"        q_b% = len( item_read$( objeTron%+9 , count( objeTron%+9 ) ))"
item_add 2,"        if q_len% < q_b% then q_len% = q_b%"
item_add 2,"      end_if"
item_add 2,"  next qd%"
item_add 2,"  if count(objeTron%+9)> 0"
item_add 2,"      if q_retour_variable%=0 then caption objeTron%+10,"+chr$(34)+"AVANT >CTRL<"+chr$(34)+":hint objeTron%+9,"+chr$(34)+"cliquez sur CTRL pour continuer"+chr$(34)+""
item_add 2,"      show objeTron%+10 : show objeTron%+9"
item_add 2,"      height objeTron%+10,count(objeTron%+9)*20 +35"
item_add 2,"      top objeTron%+10,top (objeTron%)-height(objeTron%+9) - 26: sort objeTron%+9"
item_add 2,"      width objeTron%+10 , q_len%*12  :full_space objeTron%+9"
item_add 2,"  else"
item_add 2,"      hide objeTron%+10"
item_add 2,"  end_if"
item_add 2,"  if q_retour_variable%=0 then wait 20"
item_add 2,"  q_retour_variable%=-1"
item_add 2,"return"
item_add 2,"q7:"
item_add 2,"clear objeTron%+9:q_len%=0"
item_add 2,"  for qd% = count(objeTron%+11) to 1 step -1"
item_add 2,"        q_variable%=qd% : gosub q_variable"
item_add 2,"        q_b% = len( item_read$( objeTron%+9 , count( objeTron%+9 ) ))"
item_add 2,"        if q_len% < q_b% then q_len% = q_b%"
item_add 2,"  next qd%"
item_add 2,"  if count(objeTron%+9)> 0"
item_add 2,"      if q_retour_variable%=0 then caption objeTron%+10,"+chr$(34)+"AVANT >CTRL<"+chr$(34)+":hint objeTron%+9,"+chr$(34)+"cliquez sur CTRL pour continuer"+chr$(34)+""
item_add 2,"      show objeTron%+10 : show objeTron%+9"
item_add 2,"      height objeTron%+10,count(objeTron%+9)*20 +35"
item_add 2,"      top objeTron%+10,0: sort objeTron%+9"
item_add 2,"      width objeTron%+10 , q_len%*12  :full_space objeTron%+9"
item_add 2,"  else"
item_add 2,"      hide objeTron%+10"
item_add 2,"  end_if"
item_add 2,"  if q_retour_variable%=0 then wait 20"
item_add 2,"  q_retour_variable%=-1"
item_add 2,"return"
item_add 2,""
item_add 2,"q_fin:"
item_add 2,"  q_fin%=MESSAGE_CONFIRMATION_YES_NO("+chr$(34)+"OUI: on arrête , NON: on stop ,TRAPCLOSE: annulation"+chr$(34)+")"
item_add 2,"  if q_fin%=1 then terminate "
item_add 2,"  if q_fin%=2 then stop"
item_add 2,"  if q_fin%=0 then return"
  file_save 2,dossier_tron$ + "debug.bas" : beep
  chain dossier_tron$ + "debug.bas"
end


modifier le 22 avril pour résoudre le problème des tableaux à plusieurs indices
Si vous constatez d'autres erreurs, SVP, dites le avant que le sujet soit bloqué, et aussi, parce que j'ai beaucoup de mal de programmer ces derniers temps. Trop de travail en dehors.


Dernière édition par cosmos70 le Ven 22 Avr 2011 - 1:16, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité




Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 EmptySam 12 Fév 2011 - 12:35

Je le fais cette fois, mais je pense que tout le monde le comprend:

Pour bénéficier des nouvelles fonctions de la version instantanée d'aujourd'hui, il est nécessaire de refaire l'exécutable de ce programme avec cette version.

Ce sera nécessaire pour chaque nouvelle version, pour intégrer les perfectionnements.
C'est aussi le cas pour tel ou tel loader des autre éditeurs que Panoramic.
Revenir en haut Aller en bas
Contenu sponsorisé





Mode TRACE pour Panoramic - Page 2 Empty
MessageSujet: Re: Mode TRACE pour Panoramic   Mode TRACE pour Panoramic - Page 2 Empty

Revenir en haut Aller en bas
 
Mode TRACE pour Panoramic
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Mode TRACE
» Le mode TRACE
» Mode TRACE
» mode TRACE
» Une trace paramétrable en 100 % Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: