Invité Invité
| Sujet: Que peut-on faire avec NUMBER_EVENTS Mar 9 Fév 2010 - 17:48 | |
| Je pensais que Terminate se manifestait violament lors qu'il n'est pas à la bonne place, en pensant qu'il restait des return dans la file d'attente. aussi j'ai fait l'essai de ceci: - Code:
-
message number_events while number_events>0 return end_while message number_events et j'ai perdu. Dans la boucle de while wend, j'ai mis return en pensant dépiler les return, mais il se passe autre chose. Le return en fait me renvoie à l"appel précédent, et je me retrouve avec le même message que j'ai mis avant while, avec un résultat quand même d'une décrémentation de number_events. Donc en dépilant les return je retire bien une adresse, mais cela ne fait pas le travail que j'attendais (c'est d'ailleurs normal - un return c'est une adresse de retour). Mais à quoi sert cette variable sans les instructions qui permettent de tenir compte du résultat? Je ne vois pas d'instruction dans Panoramic qui puisse se servir de number_events. Je pense quelles sont à venir. Le programme, je l'ai mis avant le terminate du programme testant le clavier à la fin de INCLUDE, juste avant Terminate transformé par stop maintenant. |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Que peut-on faire avec NUMBER_EVENTS Mar 9 Fév 2010 - 20:40 | |
| NUMBER_EVENTS servira plus tard à faire des applications temps réel. Mais cette variable peut quand même être utilisée aujourd'hui pour abréger un traitement d'événement assez long lorsqu'il y a d'autres événements à traiter, c'est à dire d'autres choses urgentes à faire. Par exemple, on pourrait comparer number_events à un seuil au dessus duquel on abandonne le traitement en cours pour laisser la place aux autres: - Code:
-
if number_events>5 then return | |
|
Invité Invité
| Sujet: Re: Que peut-on faire avec NUMBER_EVENTS Mer 10 Fév 2010 - 23:41 | |
| D'abord je te remercie pour ta réponse. J'ai laissé volontairement 1 journée passé pour qu'on soit attiré par ton message. Je suis désolé de devoir intervenir de nouveau sur ce site, mais il y a des choses qui à mon avis sont importantes et doivent-être éclaircies, et pas seulement pour moi. Je n'ai pas vraiment l'habitude de me servir de ON_CHANGE, je ne sais pas pourquoi, cela me paraissais illogique, quoi que très pratique. J'ai imaginé que chaque fois que cette instruction été appelée, le compteur d'appel, ou de queue de file dans les instruction était augmenté à chaque fois. Je ne suis pas un spécialiste de la programmation, mais parfois j'ai des doutes. Aussi j'ai repris l'exemple que j'ai mis en fin de INCLUDE, légèrement modifié (depuis j'ai fait mieux, mais ici l'exemple est plus court, et c'est le principal). J'ai fait un teste. Ceci est pour ainsi dire la base (vraiment la base) d'un mémo sur picture, mais on s'en fout. J'ai écris du texte , en revenant plus tad, et en rajoutant j'ai eu l'erreur suivante: "stack overflow" je suppose qu'il y a un dépassement de quelque chose. J'ai mis number_events dans le parcourt, branchement de chaque appui du clavier, et j'ai vu l'incrémentation de NUMBER_EVENTS. Je me suis arrété à 7000, je crois (il suffit d'appuyer sur un i et en fin de ligne, aller à la ligne suivante. Quant-même, ça fait bizarre d'avoir une attente d'événement de 7000. Aussi j'ai modifié le programme pour voir ce qui ce passait: au départ il y a deux label clavier, dont l'un est devant un apostrophe, faire l'essais ainsi. Il faut cliquer sur l'EDIT de couleur en haut, et tapez du texte, ensuite <return> ou flèche haut ou bas pour naviguez. Sortie par <ESCARPE> - Code:
-
' essais avec NUMBER_EVENTS dim b$,v%,a$,a%,ctrl% label clavier,bas,haut,incruste_sur_image full_space 0 memo 1:width 1,600:height 1,35 :font_size 1,14 :color 1,180,255,156:on_change 1,clavier memo 3:hide 3 memo 4:left 4,820:width 4,400:font_size 4,12 :height 4,600:color 4,240,240,200 alpha 9:top 9,65:left 9,280:caption 9,"PICTURE" picture 10:top 10,80:height 10,500:width 10,600:font_size 10,14 v%=1 end ' ----------------------------------LIGNE 12------------------------------------ ' clavier:
' c'est l'objet de 7 lignes qui suivent qui est concerné if number_events>ctrl% repeat clear 4 item_add 4,number_events return until number_events>0 end_if ' ----------------------------------------------------- ' **************** ' ' -----------------------LIGNE 25----------------------------------------------- clavier: if v%=0 then v%=1:if count(3)>0 then a$=item_read$(3,1):item_add 1,a$ repeat b$=inkey$ if (key_down_code=3 and key_down_special = 3 ) then exit_repeat if scancode =40 or scancode =13 then goto bas if scancode =38 then goto haut until scancode=27 wait 100
stop return ' v% pour vertical bas: repeat:until scancode=0 a$=item_read$(1,1) ' ---------------------------------- ctrl%=len(a$) :' ligne de contrôle ! !!!!! item_add 4,"number_events="+str$(number_events) ' ---------------------------------- if count(3)<v% item_add 3,a$ else item_delete 3,v% item_insert 3,v%,a$ end_if ' --- gosub incruste_sur_image v%=v%+1 2d_line 1,(v%-1)*25+1,1280,(v%-1)*25+1 2d_line 1,(v%-1)*25+22,1280,(v%-1)*25+22 a$=item_read$(3,v%) : clear 1:item_add 1,a$+chr$(0) goto clavier
haut: repeat:until scancode=0 a$=item_read$(1,1) ' ---------------------------------- ctrl%=len(a$) :' ligne de contrôle ! item_add 4,"number_events="+str$(number_events) ' ---------------------------------- item_delete 3,v% : item_insert 3,v%,a$ gosub incruste_sur_image if v%>1 v%=v%-1 2d_line 1,(v%-1)*25+1,1280,(v%-1)*25+1 2d_line 1,(v%-1)*25+22,1280,(v%-1)*25+22 a$=item_read$(3,v%) : clear 1:item_add 1,a$+chr$(0) end_if goto clavier
incruste_sur_image: 2d_target_is 10 : 2d_fill_color 255,255,255 :' efface la ligne avant de réécrir print_target_is 10 : font_color 10,255,255,255 print_locate 1,(v%-1)*25 : print string$(200," ") font_color 10,255,0,0 print_locate 1,(v%-1)*25 : print a$ return
regardez le compteur number_events. Ensuite inversez de label clavier, c'est à dire, enlever l'apostrophe de l'un pour le mettre sur l'autre. et là j'arrive à annuler , à la réduire aux dernières manipulations, et ça fonctionne. J'aimerai savoir, peut-être que Jack acceptera de donner des explications, ou d'autres spécialistes pour savoir si la méthode est dans le vrai, ou bien qu'on s'en fout de ce que vaut number_events. Les appels de sous-programmes excessifs ont forcément une limite. Je vous assure, que dès que je peux, je me mets à l'ombre, parce que depuis quelque temps c'es moi qui occupe le devant, sans voir beaucoup d'autre chose, et c'est pas normal. @+ |
|
Contenu sponsorisé
| Sujet: Re: Que peut-on faire avec NUMBER_EVENTS | |
| |
|