Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Heu...et pourquoi? | |
| | Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Heu...et pourquoi? Mer 6 Fév 2013 - 18:35 | |
| J'ai un message d'erreur et je ne vois pas pourquoi... le code en son état actuelle : - Code:
-
Declaration() Interface() Init() end ' ------------------------------------------------------------------------------ Sub Declaration() dim c% label Clic End_Sub ' ------------------------------------------------------------------------------ Sub Interface() dim_local x% objets("form",0,1,0,0,550,150,0,"Jeu de mots") objets("main_menu",1,1,0,0,0,0,0,"") objets("Sub_menu",2,1,0,0,0,0,1,"Jeu") objets("Sub_menu",3,1,0,0,0,0,2,"Jouer") objets("Sub_menu",4,1,0,0,0,0,2,"Arrêter") objets("Sub_menu",5,1,0,0,0,0,2,"Quitter") objets("button",6,1,60,450,0,0,0,"Vérif") for x%=3 to 5:on_click x%,Clic:next x% on_click 6,Clic End_Sub ' ------------------------------------------------------------------------------ Sub Init() dim_local f$ f$=dir_current$+"\Dico.txt" if file_exists(f$)=0 message f$+chr$(13)+" n'existe pas" else objets("dlist",7,1,0,0,0,0,0,"") file_load 7,f$ end_if End_Sub ' ------------------------------------------------------------------------------ Clic: c%=number_click select c% case 3 :Init_mot() case 4 case 5 :Terminate case 6 :Verif() end_select return ' ------------------------------------------------------------------------------ Sub Init_mot() dim_local x% ,m$,m%,mot$,def$,y%,a$,z% if count(7)>0 y%=rnd(count(7)) if y%=0 then y%=1 m$=item_read$(7,y%) m%=len(m$) if m$<>"" z%=number_objects for x%=1 to m% objets("Edit",z%+x%,1,10,x%*20,20,0,0,"") next x% dim_local l$(x%-1) mot$=m$ for x%=1 to m% l$(x%)=left$(mot$,1) mot$=right$(mot$,len(m$)-x%) next x% for x%=1 to m%:a$=a$+l$(x%):next x% end_if end_if End_Sub ' ------------------------------------------------------------------------------ Sub Verif()
End_Sub ' ------------------------------------------------------------------------------ SUB Objets(obj$,No%,V%,T%,L%,W%,H%,P%,C$) DIM_LOCAL indx% ' Création de l'objet IF VARIABLE("T_obj$") = 0 DIM T_obj$ T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;" T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;" T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;" T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;" T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;" END_IF indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2)) if indx%<>7 and NO%=0 then NO%=NO%+1 SELECT indx% CASE 1: SCENE3D No% CASE 2: BUTTON No% :Caption No%,C$:cursor_point No% CASE 3: EDIT No% CASE 4: MEMO No% CASE 5: COMBO No% CASE 6: ALPHA No% :Caption No%,C$ CASE 7: IF No%>0 :FORM No% :end_if:Caption No%,C$ CASE 8: LIST No% CASE 9: PICTURE No% CASE 10: CHECK No% :Caption No%,C$ CASE 11: OPTION No% :Caption No%,C$ CASE 12: MAIN_MENU No% CASE 13: SUB_MENU No% :Caption No%,C$ CASE 14: SOUND No% CASE 15: MOVIE No% CASE 16: TRACK_BAR No% CASE 17: OPEN_DIALOG No% CASE 18: SAVE_DIALOG No% CASE 19: SCROLL_BAR No% CASE 20: PROGRESS_BAR No% CASE 21: SPIN No% CASE 22: GRID No% CASE 23: CONTAINER No% :Caption No%,C$ CASE 26: DLIST No% CASE 27: SCENE2D No% CASE 28: TIMER No% CASE 32: CONTAINER_OPTION No% :Caption No%,C$ CASE 41: IMAGE No% END_SELECT ' Visibilité If V% = 0 : hide No% :end_if ' Dimensions If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% ' Placement If indx% = 7 If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If Else If T% > 0 then Top No%,T% If L% > 0 then Left No%,L% End_If ' filiation If P% > 0 then Parent No%,P% END_SUB ' ------------------------------------------------------------------------------ Sub Text_Objets_Attribut(No%,F$,FS%,B%,I%,U%,A$,CF$,CO$) Dim_Local RF%,GF%,BF%,RO%,GO%,BO%,Sep%,ch$ ' définition de la police If F$ <>"" then Font_name No%,F$ ' définition de la taille de la police if FS% > 0 then Font_Size No%,FS% ' définition de la couleur de fond de l'objet if CO$ <> "" sep%=instr(CO$,",") RO%=Val(left$(CO$,sep%-1)) ch$=right$(CO$,len(CO$)-sep%) sep%=instr(ch$,",") GO%=val(left$(ch$,sep%-1)) BO%=val(right$(ch$,len(ch$)-sep%)) Color No%,RO%,GO%,BO% end_if ' définition de la couleur du texte de l'objet if CF$ <> "" sep%=instr(CF$,",") RF%=Val(left$(CF$,sep%-1)) ch$=right$(CF$,len(CF$)-sep%) sep%=instr(ch$,",") GF%=val(left$(ch$,sep%-1)) BF%=val(right$(ch$,len(ch$)-sep%)) Font_Color No%,RF%,GF%,BF% end_if ' Gras ou pas If B%=1 then Font_Bold No% ' Italique ou pas if I%=1 then Font_Italic No% ' Souligné ou pas if U%=1 then Font_Underline No% End_sub Ps : nécessite un fichier "Dico.txt" avec quelques les uns sous les autres placé dans le même dossier que le source et voilà le message que j'ai, après avoir cliqué sur "Jouer" dans le menu : | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Heu...et pourquoi? Jeu 7 Fév 2013 - 17:51 | |
| Bonjour Ygeronimi Je ne sais pas trop pourquoi, mais il semble que après la procédure sub init_mot(), le programme repasse par la procédure sub objets(obj$,No%,V%,T%,L%,W%,H%,P%,C$) En rajoutant des message dans la procédure incriminée on voit ce qui se passe: - Code:
-
' Visibilité ' message str$(V%)+" "+str$(No%) ' message V% message No% If V% = 0 hide No% end_if
A+ | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Heu...et pourquoi? Jeu 7 Fév 2013 - 19:02 | |
| @ Ygeronimi, j'ai trouvé ce qui ne va pas. C'est select, end_select dans l'évènement clic. j'ai changé et mis les lignes BIGNONO, et ça fonctionne maintenant: - Code:
-
Declaration() Interface() Init() end ' ------------------------------------------------------------------------------ Sub Declaration() dim c% label Clic End_Sub ' ------------------------------------------------------------------------------ Sub Interface() dim_local x% objets("form",0,1,0,0,550,150,0,"Jeu de mots") objets("main_menu",1,1,0,0,0,0,0,"") objets("Sub_menu",2,1,0,0,0,0,1,"Jeu") objets("Sub_menu",3,1,0,0,0,0,2,"Jouer") objets("Sub_menu",4,1,0,0,0,0,2,"Arrêter") objets("Sub_menu",5,1,0,0,0,0,2,"Quitter") objets("button",6,1,60,450,0,0,0,"Vérif") for x%=3 to 5:on_click x%,Clic:next x% on_click 6,Clic End_Sub ' ------------------------------------------------------------------------------ Sub Init() dim_local f$ f$=dir_current$+"\Dico.txt" if file_exists(f$)=0 message f$+chr$(13)+" n'existe pas" else objets("dlist",7,1,0,0,0,0,0,"") file_load 7,f$ end_if End_Sub ' ------------------------------------------------------------------------------ Clic: c%=number_click ' select c% ' case 3 :Init_mot() ' case 4 ' case 5 :Terminate ' case 6 :Verif() ' end_select ' **********************BIGNONO************************************************* if c%=3 then Init_mot() if c%=5 then terminate if c%=3 then Verif() ' **********************BIGNONO************************************************* return ' ------------------------------------------------------------------------------ Sub Init_mot() dim_local x% ,m$,m%,mot$,def$,y%,a$,z% if count(7)>0 y%=rnd(count(7)) if y%=0 then y%=1 m$=item_read$(7,y%) m%=len(m$) if m$<>"" z%=number_objects for x%=1 to m% objets("Edit",z%+x%,1,10,x%*20,20,0,0,"") next x% dim_local l$(x%-1) mot$=m$ for x%=1 to m% l$(x%)=left$(mot$,1) mot$=right$(mot$,len(m$)-x%) next x% for x%=1 to m%:a$=a$+l$(x%):next x% end_if end_if End_Sub ' ------------------------------------------------------------------------------ Sub Verif()
End_Sub ' ------------------------------------------------------------------------------ SUB Objets(obj$,No%,V%,T%,L%,W%,H%,P%,C$) DIM_LOCAL indx% ' Création de l'objet IF VARIABLE("T_obj$") = 0 DIM T_obj$ T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;" T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;" T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;" T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;" T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;" END_IF indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2)) if indx%<>7 and NO%=0 then NO%=NO%+1 SELECT indx% CASE 1: SCENE3D No% CASE 2: BUTTON No% :Caption No%,C$:cursor_point No% CASE 3: EDIT No% CASE 4: MEMO No% CASE 5: COMBO No% CASE 6: ALPHA No% :Caption No%,C$ CASE 7: IF No%>0 :FORM No% :end_if:Caption No%,C$ CASE 8: LIST No% CASE 9: PICTURE No% CASE 10: CHECK No% :Caption No%,C$ CASE 11: OPTION No% :Caption No%,C$ CASE 12: MAIN_MENU No% CASE 13: SUB_MENU No% :Caption No%,C$ CASE 14: SOUND No% CASE 15: MOVIE No% CASE 16: TRACK_BAR No% CASE 17: OPEN_DIALOG No% CASE 18: SAVE_DIALOG No% CASE 19: SCROLL_BAR No% CASE 20: PROGRESS_BAR No% CASE 21: SPIN No% CASE 22: GRID No% CASE 23: CONTAINER No% :Caption No%,C$ CASE 26: DLIST No% CASE 27: SCENE2D No% CASE 28: TIMER No% CASE 32: CONTAINER_OPTION No% :Caption No%,C$ CASE 41: IMAGE No% END_SELECT ' Visibilité If V% = 0 : hide No% :end_if ' Dimensions If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% ' Placement If indx% = 7 If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If Else If T% > 0 then Top No%,T% If L% > 0 then Left No%,L% End_If ' filiation If P% > 0 then Parent No%,P% END_SUB ' ------------------------------------------------------------------------------ Sub Text_Objets_Attribut(No%,F$,FS%,B%,I%,U%,A$,CF$,CO$) Dim_Local RF%,GF%,BF%,RO%,GO%,BO%,Sep%,ch$ ' définition de la police If F$ <>"" then Font_name No%,F$ ' définition de la taille de la police if FS% > 0 then Font_Size No%,FS% ' définition de la couleur de fond de l'objet if CO$ <> "" sep%=instr(CO$,",") RO%=Val(left$(CO$,sep%-1)) ch$=right$(CO$,len(CO$)-sep%) sep%=instr(ch$,",") GO%=val(left$(ch$,sep%-1)) BO%=val(right$(ch$,len(ch$)-sep%)) Color No%,RO%,GO%,BO% end_if ' définition de la couleur du texte de l'objet if CF$ <> "" sep%=instr(CF$,",") RF%=Val(left$(CF$,sep%-1)) ch$=right$(CF$,len(CF$)-sep%) sep%=instr(ch$,",") GF%=val(left$(ch$,sep%-1)) BF%=val(right$(ch$,len(ch$)-sep%)) Font_Color No%,RF%,GF%,BF% end_if ' Gras ou pas If B%=1 then Font_Bold No% ' Italique ou pas if I%=1 then Font_Italic No% ' Souligné ou pas if U%=1 then Font_Underline No% End_sub | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 7 Fév 2013 - 19:08 | |
| Sub init_mot() compte le nombre de lettre du mot choisit au hasard de façon à créer autant de Edit que de lettre dans ce mot mais je ne vois pas le souci avec V% qui est un paramètre initialisé à 1 soit objet visible, ni le if ...then qui est une opération logique : si V%=1 alors objet N est visible Je suis à revoir cette sub pour séparer chaque objet. la declaration sera O_ Objet( paramètres) Edit : on s'est croisé je ne vois ce que select...end_select avait de particulier c'est juste un selecteur de menu qui oriente vers les "fonctions" du menu et est ce normal que tu es mis deux fois " if c%=3 " qui dirige sur 2 sub différentes? ca me rend | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Heu...et pourquoi? Jeu 7 Fév 2013 - 19:41 | |
| Non, il faut comprendre if c%=6 then Verif(). Il faut faire attention avec select end_select, d'autant plus que Klaus avait mis en évidence un bug avec des select imbriqués. Comme tu utilises pas mal de sub, et que l'on ne sait pas comment une sub est codé (seul Jack le sait), je me trompe peut-être, car la logique voudrait que select end_select fonctionne normalement dans ce programme. Alors, je suis comme toi, ça m'interpèle! Si quelqu'un a une explication logique, j'aimerais bien comprendre. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 7 Fév 2013 - 19:50 | |
| Le plus intrigant est la relation avec la condition. une fois la sélection faite et la sub appelée c'est elle qui travaille, le select ..end_select du menu n'est plus concerné, on est plus loin dans le prog. De plus le message concerne une condition tout à fait correct. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Heu...et pourquoi? Ven 8 Fév 2013 - 10:47 | |
| Bonjour Ygeronimi, Je me creuse la tête depuis hier soir pour comprendre pourquoi il ne fonctionne pas correctement alors que toute la syntaxe est bonne! Je ne sais pas si c'est un bug des sub ou pas, mais seul Jack pourra apprécier, mais je ne trouve pas ça logique. Tout d'abord, je me suis apperçu qu'en mettant l'instruction return juste après la ligne case3:Init_mot(), ça fonctionnait. Donc la ligne 38 devient: case3:Init_mot():return Mais ce n'est pas logique, puisqu'après end_select on a return et que c'est celui-là qui devrait être pris en compte. Donc ensuite, j'ai désactivé ce return de la ligne 38, et j'ai rajouté un return juste avant le end_sub de la sub Init_mot et j'ai pu constater qu'il n'y avait plus de problèmes. Normalement on devrait avoir l'erreur return without gosub! Ou alors, c'est Select ... End_select qui a un bug avec les subs? - Code:
-
Declaration() Interface() Init() end ' ------------------------------------------------------------------------------ Sub Declaration() dim c% label Clic End_Sub ' ------------------------------------------------------------------------------ Sub Interface() dim_local x% objets("form",0,1,0,0,550,150,0,"Jeu de mots") objets("main_menu",1,1,0,0,0,0,0,"") objets("Sub_menu",2,1,0,0,0,0,1,"Jeu") objets("Sub_menu",3,1,0,0,0,0,2,"Jouer") objets("Sub_menu",4,1,0,0,0,0,2,"Arrêter") objets("Sub_menu",5,1,0,0,0,0,2,"Quitter") objets("button",6,1,60,450,0,0,0,"Vérif") for x%=3 to 5:on_click x%,Clic:next x% on_click 6,Clic End_Sub ' ------------------------------------------------------------------------------ Sub Init() dim_local f$ f$=dir_current$+"\Dico.txt" if file_exists(f$)=0 message f$+chr$(13)+" n'existe pas" else objets("dlist",7,1,0,0,0,0,0,"") file_load 7,f$ end_if End_Sub ' ------------------------------------------------------------------------------ Clic: c%=number_click select c% case 3 :Init_mot(): ' RETURN : 'LIGNE DE BIGNONO ***************************** case 4 case 5 :Terminate case 6 :Verif() end_select return ' ------------------------------------------------------------------------------ Sub Init_mot() dim_local x% ,m$,m%,mot$,def$,y%,a$,z% if count(7)>0 y%=rnd(count(7)) if y%=0 then y%=1 m$=item_read$(7,y%) m%=len(m$) if m$<>"" z%=number_objects for x%=1 to m% objets("Edit",z%+x%,1,10,x%*20,20,0,0,"") next x% dim_local l$(x%-1) mot$=m$ for x%=1 to m% l$(x%)=left$(mot$,1) mot$=right$(mot$,len(m$)-x%) next x% for x%=1 to m%:a$=a$+l$(x%):next x% end_if end_if ' LIGNE DE BIGNONO ************************************************************* return ' LIGNE DE BIGNONO ************************************************************* End_Sub ' ------------------------------------------------------------------------------ Sub Verif()
End_Sub ' ------------------------------------------------------------------------------ SUB Objets(obj$,No%,V%,T%,L%,W%,H%,P%,C$) DIM_LOCAL indx% ' Création de l'objet IF VARIABLE("T_obj$") = 0 DIM T_obj$ T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;" T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;" T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;" T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;" T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;" END_IF indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2)) if indx%<>7 and NO%=0 then NO%=NO%+1 SELECT indx% CASE 1: SCENE3D No% CASE 2: BUTTON No% :Caption No%,C$:cursor_point No% CASE 3: EDIT No% CASE 4: MEMO No% CASE 5: COMBO No% CASE 6: ALPHA No% :Caption No%,C$ CASE 7: IF No%>0 :FORM No% :end_if:Caption No%,C$ CASE 8: LIST No% CASE 9: PICTURE No% CASE 10: CHECK No% :Caption No%,C$ CASE 11: OPTION No% :Caption No%,C$ CASE 12: MAIN_MENU No% CASE 13: SUB_MENU No% :Caption No%,C$ CASE 14: SOUND No% CASE 15: MOVIE No% CASE 16: TRACK_BAR No% CASE 17: OPEN_DIALOG No% CASE 18: SAVE_DIALOG No% CASE 19: SCROLL_BAR No% CASE 20: PROGRESS_BAR No% CASE 21: SPIN No% CASE 22: GRID No% CASE 23: CONTAINER No% :Caption No%,C$ CASE 26: DLIST No% CASE 27: SCENE2D No% CASE 28: TIMER No% CASE 32: CONTAINER_OPTION No% :Caption No%,C$ CASE 41: IMAGE No% END_SELECT ' Visibilité If V% = 0 : hide No% :end_if ' Dimensions If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% ' Placement If indx% = 7 If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If Else If T% > 0 then Top No%,T% If L% > 0 then Left No%,L% End_If ' filiation If P% > 0 then Parent No%,P% END_SUB ' ------------------------------------------------------------------------------ Sub Text_Objets_Attribut(No%,F$,FS%,B%,I%,U%,A$,CF$,CO$) Dim_Local RF%,GF%,BF%,RO%,GO%,BO%,Sep%,ch$ ' définition de la police If F$ <>"" then Font_name No%,F$ ' définition de la taille de la police if FS% > 0 then Font_Size No%,FS% ' définition de la couleur de fond de l'objet if CO$ <> "" sep%=instr(CO$,",") RO%=Val(left$(CO$,sep%-1)) ch$=right$(CO$,len(CO$)-sep%) sep%=instr(ch$,",") GO%=val(left$(ch$,sep%-1)) BO%=val(right$(ch$,len(ch$)-sep%)) Color No%,RO%,GO%,BO% end_if ' définition de la couleur du texte de l'objet if CF$ <> "" sep%=instr(CF$,",") RF%=Val(left$(CF$,sep%-1)) ch$=right$(CF$,len(CF$)-sep%) sep%=instr(ch$,",") GF%=val(left$(ch$,sep%-1)) BF%=val(right$(ch$,len(ch$)-sep%)) Font_Color No%,RF%,GF%,BF% end_if ' Gras ou pas If B%=1 then Font_Bold No% ' Italique ou pas if I%=1 then Font_Italic No% ' Souligné ou pas if U%=1 then Font_Underline No% End_sub Enfin, je me trompe peut-être aussi, mais ça ne me paraît pas logique. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 8 Fév 2013 - 13:58 | |
| Bonjour Bignono ! Moi aussi je suis très perplexe devant ce problème. Plus je regarde le code moins je vois d'où cela vient . J'espère que nous pourrons avoir une explication de Jack un jours... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Heu...et pourquoi? Ven 8 Fév 2013 - 15:42 | |
| Salut Ygeronimi J’ai étudié ton programme pour comprendre sa logique d’abord, le message d’erreur ensuite. Et voici mon diagnostic : Du point de vue logique de programmation et syntaxe, il n’y a rien à reprocher ! L’erreur provient de SELECT … CASE … END_SELECT qui présente à mon humble avis un bug ! La preuve : changer cette structure SELECT … CASE … END_CASE par une série de IF … THEN et ça marchera ! ou bien ajouter RETURN après - Code:
-
case 3 : Init_mot() : RETURN Et ça ce n’est pas logique du tout !Voici comment j’ai modifié ton programme - Code:
-
Declaration() Interface() Init() end ' ------------------------------------------------------------------------------ Sub Declaration() dim c% label Clic End_Sub ' ------------------------------------------------------------------------------ Sub Interface() dim_local x% objets("form",0,1,0,0,550,150,0,"Jeu de mots") objets("main_menu",1,1,0,0,0,0,0,"") objets("Sub_menu",2,1,0,0,0,0,1,"Jeu") objets("Sub_menu",3,1,0,0,0,0,2,"Jouer") objets("Sub_menu",4,1,0,0,0,0,2,"Arrêter") objets("Sub_menu",5,1,0,0,0,0,2,"Quitter") objets("button",6,1,60,450,0,0,0,"Vérif") for x%=3 to 5:on_click x%,Clic:next x% on_click 6,Clic End_Sub ' ------------------------------------------------------------------------------ Sub Init() dim_local f$ f$=dir_current$+"\Dico.txt" if file_exists(f$)=0 message f$+chr$(13)+" n'existe pas" else objets("dlist",7,1,0,0,0,0,0,"") file_load 7,f$ end_if End_Sub ' ------------------------------------------------------------------------------ Clic: c%=number_click ' select c% ' case 3 : Init_mot() : ' Ajouter ici RETURN Papydall ' case 4 : Arreter() ' case 5 : Terminate ' case 6 : Verif() ' end_select ' ****************************************************************************** ' Papydall if c% = 3 then Init_mot() if c% = 4 then Arreter() if c% = 5 then terminate if c% = 6 then Verif() return ' ------------------------------------------------------------------------------ Sub Init_mot() dim_local x% ,m$,m%,mot$,def$,y%,a$,z% if count(7)>0 y%=rnd(count(7)) if y%=0 then y%=1 m$=item_read$(7,y%) : message m$ : ' Papydall m%=len(m$) if m$<>"" z%=number_objects for x%=1 to m% objets("Edit",z%+x%,1,10,x%*20,20,0,0,"") next x% dim_local l$(x%-1) mot$=m$ for x%=1 to m% l$(x%)=left$(mot$,1) mot$=right$(mot$,len(m$)-x%) next x% for x%=1 to m%:a$=a$+l$(x%):next x% end_if end_if End_Sub ' ------------------------------------------------------------------------------ Sub Verif() message "en cours" : ' Papydall End_Sub ' ------------------------------------------------------------------------------ ' Papydall SUB Arreter() message "en cours" END_SUB ' ****************************************************************************** SUB Objets(obj$,No%,V%,T%,L%,W%,H%,P%,C$) DIM_LOCAL indx% ' Création de l'objet IF VARIABLE("T_obj$") = 0 DIM T_obj$ T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;" T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;" T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;" T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;" T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;" END_IF indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2)) if indx%<>7 and NO%=0 then NO%=NO%+1 SELECT indx% CASE 1: SCENE3D No% CASE 2: BUTTON No% :Caption No%,C$:cursor_point No% CASE 3: EDIT No% CASE 4: MEMO No% CASE 5: COMBO No% CASE 6: ALPHA No% :Caption No%,C$ CASE 7: IF No%>0 :FORM No% :end_if:Caption No%,C$ CASE 8: LIST No% CASE 9: PICTURE No% CASE 10: CHECK No% :Caption No%,C$ CASE 11: OPTION No% :Caption No%,C$ CASE 12: MAIN_MENU No% CASE 13: SUB_MENU No% :Caption No%,C$ CASE 14: SOUND No% CASE 15: MOVIE No% CASE 16: TRACK_BAR No% CASE 17: OPEN_DIALOG No% CASE 18: SAVE_DIALOG No% CASE 19: SCROLL_BAR No% CASE 20: PROGRESS_BAR No% CASE 21: SPIN No% CASE 22: GRID No% CASE 23: CONTAINER No% :Caption No%,C$ CASE 26: DLIST No% CASE 27: SCENE2D No% CASE 28: TIMER No% CASE 32: CONTAINER_OPTION No% :Caption No%,C$ CASE 41: IMAGE No% END_SELECT ' Visibilité If V% = 0 : hide No% :end_if ' Dimensions If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% ' Placement If indx% = 7 If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If Else If T% > 0 then Top No%,T% If L% > 0 then Left No%,L% End_If ' filiation If P% > 0 then Parent No%,P% END_SUB ' ------------------------------------------------------------------------------ Sub Text_Objets_Attribut(No%,F$,FS%,B%,I%,U%,A$,CF$,CO$) Dim_Local RF%,GF%,BF%,RO%,GO%,BO%,Sep%,ch$ ' définition de la police If F$ <>"" then Font_name No%,F$ ' définition de la taille de la police if FS% > 0 then Font_Size No%,FS% ' définition de la couleur de fond de l'objet if CO$ <> "" sep%=instr(CO$,",") RO%=Val(left$(CO$,sep%-1)) ch$=right$(CO$,len(CO$)-sep%) sep%=instr(ch$,",") GO%=val(left$(ch$,sep%-1)) BO%=val(right$(ch$,len(ch$)-sep%)) Color No%,RO%,GO%,BO% end_if ' définition de la couleur du texte de l'objet if CF$ <> "" sep%=instr(CF$,",") RF%=Val(left$(CF$,sep%-1)) ch$=right$(CF$,len(CF$)-sep%) sep%=instr(ch$,",") GF%=val(left$(ch$,sep%-1)) BF%=val(right$(ch$,len(ch$)-sep%)) Font_Color No%,RF%,GF%,BF% end_if ' Gras ou pas If B%=1 then Font_Bold No% ' Italique ou pas if I%=1 then Font_Italic No% ' Souligné ou pas if U%=1 then Font_Underline No% End_sub
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Heu...et pourquoi? Ven 8 Fév 2013 - 16:00 | |
| Bonjour Paydall, Tu ne fais que confirmer ce que je soupçonnais et essayais d'expliquer dans mon précédent post! A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 8 Fév 2013 - 17:10 | |
| Salut Papydall, (Content de te voir parmis nous....) Donc nous pouvons dans ce cas employer le mot, le gros mot, le vilain mot ....BUG... Pour une fois, cela ne vient pas de moi. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Heu...et pourquoi? Ven 8 Fév 2013 - 19:51 | |
| Tu peux utiliser cafard, cancrelat, punaise, scarabé ... à ta guise ! Au moins, c'est français ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Heu...et pourquoi? Ven 8 Fév 2013 - 23:08 | |
| • BUG (noun) The noun BUG has 5 senses: 1. general term for any insect or similar creeping or crawling invertebrate 2. a fault or defect in a system or machine 3. a small hidden microphone; for listening secretly 4. insects with sucking mouthparts and forewings thickened and leathery at the base; usually show incomplete metamorphosis 5. a minute life form (especially a disease-causing bacterium); the term is not in technical use Donc Klaus a bien dit les choses ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 8 Fév 2013 - 23:45 | |
| J'attrape ma bombe de baigoun, heu...baigon et je m'occupe de vos petites bestioles ! | |
| | | Contenu sponsorisé
| Sujet: Re: Heu...et pourquoi? | |
| |
| | | | Heu...et pourquoi? | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |