Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Assistant de création de menu Panoramic Jeu 1 Oct 2015 - 18:17 | |
| Bonjour à tous, J'ai enfin terminé mon Assistant de création de menu Panoramic. J'ai du me résoudre à vous fournir une version limitée à 2 Niveaux de menu. Je n'ai pas réussi au 3éme niveau. Cette version donne la possibilité de numéroter les menus par variables si vous avez coché l'option. Pas besoin d'explications, il suffit de répondre aux questions, de lire les infos écrites en bleu et d'utiliser les bons boutons. Pour commencer, je vous conseille répondre non au premier message vous comprendrez mieux la construction du code du menu. Par la suite, vous pourrez essayer la version "Small" qui présent l'avantage de prendre moins de place sur l'écran. A la sortie, vous pourrez coller votre code tout prêt dans l'éditeur Panoramic. C'est pourquoi je vous conseille de faire un exe, ça évite d'avoir 2 éditeurs Panoramic ouverts, mais ce n'est pas obligatoire. Bon à savoir: 1) le premier caractère d'un menu ou sous-menu est automatiquement transformé en Majuscule, mais pas pour les label. 2) Pour les menus le ON_CLICK est facultatif. 3) si vous avez choisis l'option "numérotation par variable" vos variables sont crées comme ceci: pour un menu fichier par exemple => M_Fichier% pour un sous-menu nouveau par exemple => SM_Nouveau% 4) Le numéro de MAIN_MENU peut commencer à 4000 (dans ce cas il vous reste 999 n° d'objets disponibles pour votre menu) Voici le code en open source: - Code:
-
' assistant de création d'un Menu_Panoramic V2 (2 niveaux maximum) par Jean Claude 10/2015 rem ============================================================================ INIT() if message_confirmation_yes_no("Souhaitez-vous une version réduite (sans détails) ?")=1 then option_affichage$="S" if option_affichage$="S" width 0,965 : height 0,175 hide Dlist_Code% : hide Dlist_Dim% : hide Dlist_Label% hide Dlist_SP% : hide Dlist_VC% : hide Dlist_OC% else width 0,945 : height 0,692 end_if START() END rem ======================================================' générer le code GVC: inactive bouton_GVC% : clear list_codeG% : show list_codeG% inactive_boutons() : inactive bouton_visu% caption info%,"Génération et visualisation du code Panoramic" : pause 100 item_add list_codeG%,"REM ====================================================' MAIN_MENU "+str$(NMM%) : pause 100 if count(Dlist_Dim%)>1 item_add list_codeG%,"' ----- DIM(s) du MAIN_MENU "+str$(NMM%)+" -----" : pause 100 b$=item_read$(Dlist_Dim%,1)+" " for n%=2 to count(Dlist_Dim%) a$=item_read$(Dlist_Dim%,n%) : b$=b$+a$+" , " : pause 1 next n% b$=left$(b$,len(b$)-3) : item_add list_codeG%,b$ : item_add list_codeG%,"" : pause 1 item_add list_codeG%,"' ----- CONSTANTES du MAIN_MENU "+str$(NMM%)+" -----" : pause 1 b$="" for n%=2 to count(Dlist_VC%) a$=item_read$(Dlist_VC%,n%) : b$=b$+a$+" : " : pause 1 next n% b$=left$(b$,len(b$)-3) : item_add list_codeG%,b$ end_if item_add list_codeG%,"" item_add list_codeG%,"' ----- LABEL(s) du MAIN_MENU "+str$(NMM%)+" -----" : pause 1 if count(Dlist_Label%)>1 b$=item_read$(Dlist_Label%,1)+" " for n%=2 to count(Dlist_Label%) a$=item_read$(Dlist_Label%,n%) : b$=b$+a$+" , " : pause 1 next n% b$=left$(b$,len(b$)-3) : item_add list_codeG%,b$ : item_add list_codeG%,"" : pause 1 end_if item_add list_codeG%,"" if count(Dlist_Code%)>1 item_add list_codeG%,"' ----- Création du MAIN_MENU "+str$(NMM%)+" -----" : pause 1 a$="" : b$="" for n%=2 to count(Dlist_Code%) a$=item_read$(Dlist_Code%,n%) if left$(a$,1)="§" item_add list_codeG%,"" : pause 1 else item_add list_codeG%,a$ : pause 1 end_if next n% end_if item_add list_codeG%,"" if count(Dlist_Label%)>1 item_add list_codeG%,"' ----- CONNEXIONS du MAIN_MENU "+str$(NMM%)+" -----" : pause 1 for n%=1 to count(Dlist_OC%) a$=item_read$(Dlist_OC%,n%) : item_add list_codeG%,a$ : pause 1 next n% item_add list_codeG%,"" item_add list_codeG%,"END" item_add list_codeG%,"' ----- SOUS-PROGRAMMES du MAIN_MENU "+str$(NMM%)+" -----" : pause 1 a$="" : b$=item_read$(Dlist_SP%,1) : b$="" for n%=2 to count(Dlist_SP%) a$=item_read$(Dlist_SP%,n%) : item_add list_codeG%,a$ : pause 1 next n% end_if pause 100 if option_affichage$="" caption info%,"ATTENTION: la sélection d'une ligne entraine sa suppression." on_click list_codeG%,sup_lig else caption info%,"Il vous reste à copier le code ou quitter." end_if show Bt_Copy% : on_click Bt_Copy%,Copy RETURN Copy: b$="" : caption info%,"Copie du code en cours..." : pause 100 : show memo_codeG% for n%=1 to count(list_codeG%) a$=item_read$(list_codeG%,n%)+chr$(13) : pause 5 item_add memo_codeG%,a$ b$=b$+a$ next n% clipboard_string_copy b$ caption info%,"Le code est maintenant copier dans le presse-papier. Vous pouvez quitter" caption bouton_modif%,"QUITTER" : inactive Bt_Copy% RETURN sup_lig: n%=item_index(list_codeG%) : if n%=0 then return if item_index$(list_codeG%)="" item_delete list_codeG%,n% : return else m%=message_confirmation_yes_no("La ligne que vous avez selectionnée contient du code."+chr$(13)+chr$(13)+" Voulez-vous réellement supprimer cette ligne") if m%=1 then item_delete list_codeG%,n% end_if RETURN fin: if option_affichage$="S" then m%=-2 if option_affichage$="" then m%=-10 for n%=height(0) to 1 step m% if width(0)>10 then width 0,width(0)-14 height 0,n%: pause 1 if n%<5 then exit_for next n% terminate RETURN rem ===========================================================' Ajouter un menu Aj_Menu: inactive_boutons() if caption$(bouton_visu%)="Annuler Visualiser" for n%=NMM%+1 to nm% active n% :maxn%=n% on_click n%,rien next n% else Parent_Prov%=NMM% :variable$="" nm%=nm%+1 : SUB_MENU nm% : PARENT nm%, Parent_Prov% : caption nm%,string$(10," ") inactive bouton_visu% : caption info%,"Sélectionnez le menu vide" : on_click nm%,Aj_Menu1 end_if RETURN Aj_Menu1: if caption$(number_click)<>string$(10," ") message "Vous devez sélectionner un menu vide" Parent_Prov%=NMM% :variable$="" : caption info%,"" : active BT_Aj_Menu% else gosub Aj_Menu2 : return end_if RETURN Aj_Menu2: caption info%,"Saisir le nom du menu" if message_input("Nom du Menu: (Objet n°"+str$(nm%)+")","","")=1 caption nm%,message_text$ else message "Réponse obligatoire" : goto Aj_Menu2 end_if if message_text$="" then message "La création d'un menu sans nom est impossible" : delete nm% : nm%=nm%-1: gosub Redemarre : return if right$(message_text$,1)="%" then message "Le caratère % est interdit" : delete nm% : nm%=nm%-1 : gosub Redemarre : return for n%=1 to len(message_text$) a$=mid$(message_text$,n%,1) : Ctrl_si_Caractere_Interdit(a$) if okc$="N" then delete nm% : nm%=nm%-1 : gosub Redemarre : return next n% substitue(message_text$,"_"," ") Majuscule_Auto(message_text$) : message_text$=a$ if count(Dlist_doublon_menu%)<>0 for n%=1 to count(Dlist_doublon_menu%) if message_text$ = item_read$(Dlist_doublon_menu%,n%) message "Ce Nom est déjà utilisé, recommencez" : delete nm% : nm%=nm%-1 : gosub Redemarre : return else item_add Dlist_doublon_menu%,message_text$ end_if next n% else item_add Dlist_doublon_menu%,message_text$ end_if off_click nm% active bouton_visu% Majuscule_Auto(message_text$) : caption nm%,a$ variable$="M_"+a$+"%" item_add Dlist_Code%," SUB_MENU "+str$(nm%)+" : PARENT "+str$(nm%)+","+str$(Parent_Prov%)+" : CAPTION "+str$(nm%)+","+chr$(34)+a$+chr$(34) item_add Dlist_Code%,"§"+str$(nm%) Connexion() RETURN SUB Majuscule_Auto(chaine$) dim_local Lposchaine%,chaineProv$,debChaine$ debChaine$=upper$(left$(chaine$,1)) : Lposchaine%=len(chaine$)-1 : chaineProv$=right$(chaine$,Lposchaine%) : a$=insert$(chaineProv$,debChaine$,1) END_SUB SUB Connexion() if checked(option_vr%)=1 item_add Dlist_Dim%,variable$ item_add Dlist_VC%,variable$+"="+str$(nm%) end_if Connexion2() END_SUB SUB Connexion2() caption info%,"Saisir (ou pas) une connextion vers un sous-programme" if message_input("Connexion ON_CLICK ","indiquez ici le LABEL sans les 2 points (:) (Facultatif)","")=1 if message_text$<>"" for n%=1 to len(message_text$) a$=mid$(message_text$,n%,1) : okc$="E" : Ctrl_si_Caractere_Interdit(a$) if okc$="N" then Connexion2() : exit_sub next n% if count(Dlist_doublon_label%)<>0 for n%=1 to count(Dlist_doublon_label%) if message_text$ = item_read$(Dlist_doublon_label%,n%) message "Ce Nom de label est déjà utilisé, recommencez" : Connexion2() : exit_sub else item_add Dlist_doublon_label%,message_text$ end_if next n% else item_add Dlist_doublon_label%,message_text$ end_if if checked(option_cl%)=1 item_add Dlist_OC%,"ON_CLICK "+str$(nm%)+","+message_text$ item_add Dlist_Label%,message_text$ item_add Dlist_SP%,message_text$+":" item_add Dlist_SP%,"stop" item_add Dlist_SP%,"RETURN" item_add Dlist_SP%,"" end_if if checked(option_vr%)=1 item_add Dlist_OC%,"ON_CLICK "+variable$+","+message_text$ item_add Dlist_Label%,message_text$ item_add Dlist_SP%,message_text$+":" item_add Dlist_SP%,"stop" item_add Dlist_SP%,"RETURN" item_add Dlist_SP%,"" end_if end_if end_if active bouton_GVC% : active bouton_visu% : Inactive_main_menu() : gosub Redemarre END_SUB rem ======================================================' Ajouter un sous-menu Aj_SMenu: inactive_boutons() if caption$(bouton_visu%)="Annuler Visualiser" for n%=NMM%+1 to nm% : active n% : on_click n%,rien : next n% else for n%=NMM%+1 to nm% : maxn%=n% : active n% : on_click n%,Aj_SMenu1 : next n% inactive bouton_visu% : caption info%,"Cliquez sur un Menu Parent (2 fois au premier sous-menu) " end_if RETURN Aj_SMenu1: if caption$(bouton_visu%)="Annuler Visualiser" then return off_click number_click variable$="" if object_exists(maxn%+1)=0 Parent_Prov%=number_click nm%=maxn%+1 : SUB_MENU nm% : PARENT nm%, Parent_Prov% : caption nm%,string$(10," ") else ' rien end_if on_click nm%,Aj_SMenu2 RETURN Aj_SMenu2: if caption$(bouton_visu%)="Annuler Visualiser" then return caption info%,"Saisir le nom du sous-menu" if message_input("Ajouter un sous-Menu au menu: "+caption$(Parent_Prov%),"","")=1 caption nm%,message_text$ else message "Réponse obligatoire" : goto Aj_Menu2 end_if if message_text$="" then message "La création d'un sous-menu sans nom est impossible" : delete nm% : nm%=nm%-1 : gosub Redemarre : return for n%=1 to len(message_text$) a$=mid$(message_text$,n%,1) : Ctrl_si_Caractere_Interdit(a$) if okc$="N" then delete nm% : nm%=nm%-1 : gosub Redemarre : return next n% substitue(message_text$,"_"," ") : Majuscule_Auto(message_text$) : variable$="SM_"+a$+"%" if count(Dlist_doublon_menu%)<>0 for n%=1 to count(Dlist_doublon_menu%) if message_text$ = item_read$(Dlist_doublon_menu%,n%) message "Ce Nom est déjà utilisé, recommencez" : delete nm% : nm%=nm%-1 : gosub Redemarre : return else item_add Dlist_doublon_menu%,message_text$ end_if next n% else item_add Dlist_doublon_menu%,message_text$ end_if Insert_Code(6) : Connexion() RETURN SUB Insert_Code(nbsp%) if nbsp%=6 for n%=1 to count(Dlist_Code%) a$=item_read$(Dlist_Code%,n%) if left$(a$,1)="§" V%=val(mid$(a$,2,len(a$)-1)) if V%=Parent_Prov% item_delete Dlist_Code%,n% Majuscule_Auto(message_text$) : caption nm%,a$ item_insert Dlist_Code%,n%,string$(nbsp%," ")+"SUB_MENU "+str$(nm%)+" : PARENT "+str$(nm%)+","+str$(Parent_Prov%)+" : CAPTION "+str$(nm%)+","+chr$(34)+a$+chr$(34) item_insert Dlist_Code%,n%+1,"§"+str$(V%) exit_for end_if end_if next n% end_if END_SUB rem ======================================' Mise en place des dim, label, objets SUB INIT() ' DIM PROG dim n%,m%,maxn%,no%,nm%,NMM%,Parent_Prov%,V%,variable$,a$,b$,pas,okc$,option_affichage$ ' LABEL label V_CTI,V_CTI1,V_CTI2,V_NMM,V_NMM1,V_NMM2,V_OP_NUM,Recommence,Aj_Menu,Aj_Menu2 label Aj_Menu1,Redemarre,Aj_SMenu,Aj_SMenu1,Aj_SMenu2,Visu_menu,Retour_prog,rien,GVC label sup_lig,Copy,fin ' DIM OBJ dim Dlist_tri%,Dlist_Code%,Dlist_Dim%,Dlist_Label%,Dlist_SP%,Dlist_VC%,Dlist_OC% dim Dlist_doublon_menu%,Dlist_doublon_label%,memo_code1%,memo_code2%,alpha_CTI% dim edit_CTI%,bouton_CTI%,alpha_NMM%,edit_NMM%,bouton_NMM%,bouton_visu%,Ctnr%,option_cl% dim option_vr%,bouton_modif%,BT_Aj_Menu%,info%,BT_Aj_SMenu%,BT_Aj_SSMenu% dim bouton_GVC%,list_codeG%,Bt_Copy%,Bt_txt%,memo_codeG% ' OBJ width 0,945 : height 0,692 : caption 0,"Assistant de fabrication d'un Menu PANORAMIC" top 0,(screen_y/2)-(height(0)/2) : left 0,(screen_x/2)-(width(0)/2) :' border_hide 0 color 0,200,240,255 : on_close 0,fin no%=5000 no%=no%+1 : Dlist_tri%=no% : dlist no% no%=no%+1 : Dlist_doublon_menu%=no% : dlist no% no%=no%+1 : Dlist_doublon_label%=no% : dlist no% no%=no%+1 : Dlist_Code%=no% : list no% width no%,300 : height no%,250 : top no%,120 : left no%,5 no%=no%+1 : Dlist_Dim%=no% : list no% width no%,300 : height no%,250 : top no%,120 : left no%,315 no%=no%+1 : Dlist_Label%=no% : list no% width no%,300 : height no%,250 : top no%,380 : left no%,5 no%=no%+1 : Dlist_SP%=no% : list no% width no%,300 : height no%,250 : top no%,380 : left no%,315 no%=no%+1 : Dlist_VC%=no% : list no% width no%,300 : height no%,250 : top no%,120 : left no%,625 no%=no%+1 : Dlist_OC%=no% : list no% width no%,300 : height no%,250 : top no%,380 : left no%,625 no%=no%+1 : list_codeG%=no% : list no% width no%,920 : height no%,508 : top no%,120 : left no%,5 hide no% no%=no%+1 : memo_codeG%=no% : memo no% width no%,920 : height no%,508 : top no%,120 : left no%,5 hide no% no%=no%+1 : alpha_CTI%=no% : alpha no% : top no%,10 : left no%,5 caption no%," N° d'identification de FORM (pour command_target_is) " : font_bold no% no%=no%+1 : edit_CTI%=no% : edit no% : width no%,30 : top no%,top(no%-1)-4 : left no%,width(no%-1)+5 : font_bold no% no%=no%+1 : bouton_CTI%=no% : button no% : width no%,20 : top no%,top(edit_CTI%)-2 : left no%,left(edit_CTI%)+width(edit_CTI%)+2 font_bold no% : caption no%,"X" : hint no%,"Valider le N° d'identification du FORM" : inactive no% no%=no%+1 : alpha_NMM%=no% : alpha no% : top no%,10 : left no%,left(bouton_CTI%)+width(bouton_CTI%)+20 caption no%," N° d'identification de MAIN_MENU " : font_bold no% : hide no% no%=no%+1 : edit_NMM%=no% : edit no% : width no%,35 : top no%,top(alpha_NMM%)-4 : left no%,left(alpha_NMM%)+width(alpha_NMM%) : font_bold no% : hide no% no%=no%+1 : bouton_NMM%=no% : button no% : width no%,20 : top no%,top(edit_NMM%)-2 : left no%,left(edit_NMM%)+width(edit_NMM%)+2 font_bold no% : caption no%,"X" : hint no%,"Valider le N° d'identification du MAIN_MENU" : inactive no% : hide no% no%=no%+1 : Ctnr%=no% : container_option no% : width no%,480 : height no%,30 top no%,30 : left no%,5 : hide no% no%=no%+1 : option_cl%=no% : option no% : parent no%,Ctnr% : width no%,(width(Ctnr%)/2)-30 font_bold no% : caption no%,"Numérotation des objets classique" : top no%,10 : left no%,10 : hint no%,"Numérotation par nombre" no%=no%+1 : option_vr%=no% : option no% : parent no%,Ctnr% : width no%,(width(Ctnr%)/2)-10 font_bold no% : caption no%,"Numérotation des objets par variables" : top no%,10 : left no%,left(option_cl%)+width(option_cl%)+15 no%=no%+1 : bouton_modif%=no% : button no% : width no%,120 : top no%,5 : left no%,width(0)-width(no%)-22 font_bold no% : caption no%,"Quiter sans sauver" : hint no%,"Tout recommencer à zéro" : on_click bouton_modif%,Recommence no%=no%+1 : BT_Aj_Menu%=no% : button no% : width no%,110 : top no%,65 : left no%,5 font_bold no% : caption no%,"Ajouter un Menu" : hint no%,"Ajouter un Menu" : hide no% no%=no%+1 : info%=no% : alpha no% : top no%,90 : left no%,5 font_bold no% : font_size no%,14 : font_color no%,0,0,255 : caption info%,"" no%=no%+1 : BT_Aj_SMenu%=no% : button no% : width no%,140 : top no%,top(BT_Aj_Menu%) : left no%,left(BT_Aj_Menu%)+width(BT_Aj_Menu%)+10 font_bold no% : caption no%,"Ajouter un Sous-Menu" : hint no%,"Ajouter un Sous-Menu" : hide no% no%=no%+1 : BT_Aj_SSMenu%=no% : button no% : width no%,170 : top no%,top(BT_Aj_SMenu%) : left no%,left(BT_Aj_SMenu%)+width(BT_Aj_SMenu%)+10 font_bold no% : caption no%,"Ajouter un Sous-sous-Menu" : hint no%,"Ajouter un Sous-sous-Menu" : hide no% no%=no%+1 : bouton_visu%=no% : button no% : width no%,115 : top no%,top(Ctnr%)+5 : left no%,left(Ctnr%)+width(Ctnr%)+20 caption bouton_visu%,"Visualiser le menu" : hint bouton_visu%,"Active le menu pour pouvoir le visualiser" font_bold no% : on_click bouton_visu%,Visu_menu : inactive no% : hide no% no%=no%+1 : bouton_GVC%=no% : button no% : width no%,180 : top no%,top(Ctnr%)+5 : left no%,width(0)-width(no%)-22 caption no%,"Générer et visualiser le code" : hint no%,"Générer et visualiser le code sans enregistrement" font_bold no% : on_click no%,GVC : hide no% no%=no%+1 : Bt_Copy%=no% : button no% : width no%,120 : top no%,top(bouton_GVC%)+30 : left no%,width(0)-width(no%)-22 caption no%,"Copier le code" : hint no%,"Copier le code dans le presse-papier" font_bold no% : on_click no%,Copy : hide no% END_SUB rem =====================================================' Visualisation du menu Visu_menu: caption info%,"Visualisation du Menu réel " off_click bouton_visu% caption bouton_visu%,"Annuler Visualiser" : hint bouton_visu%,"Retour au programme" on_click bouton_visu%,Retour_prog inactive_boutons() : active_main_menu() RETURN Retour_prog: caption info%,"Cliquez sur le bouton de votre choix" off_click bouton_visu% show bouton_visu% : caption bouton_visu%,"Visualiser le menu" : hint bouton_visu%,"Active le menu pour pouvoir le visualiser" on_click bouton_visu%,Visu_menu Inactive_main_menu() : active_boutons() RETURN rien: RETURN rem ================================================' Mise en place de MAIN_MENU SUB START() set_focus edit_CTI% : on_change edit_CTI%,V_CTI : on_key_up edit_CTI%,V_CTI1 END_SUB V_CTI: active bouton_CTI% : on_click bouton_CTI%,V_CTI2 RETURN V_CTI1: if key_up_code=13 then gosub V_CTI2 RETURN V_CTI2: if numeric(text$(edit_CTI%))=0 message "La valeur de COMMAND_TARGET_IS doit être un nombre" : text edit_CTI%,"" : set_focus edit_CTI% : return else if val(text$(edit_CTI%))<0 message "La valeur de COMMAND_TARGET_IS ne doit pas être inférieure à zéro" : text edit_CTI%,"" : set_focus edit_CTI% : return else inactive edit_CTI% : inactive bouton_CTI% item_add Dlist_SP%,"' --- Sous-Programme du MAIN_MENU ---" item_add Dlist_Label%,"LABEL " item_add Dlist_Dim%,"DIM " item_add Dlist_VC%,"' --- Constante ---" item_add Dlist_Code%,"' --- MAIN_MENU --- " item_add Dlist_Code%,"COMMAND_TARGET_IS "+text$(edit_CTI%) n%=val(text$(edit_CTI%)) show alpha_NMM% : show edit_NMM% : show bouton_NMM% set_focus edit_NMM% : on_change edit_NMM%,V_NMM end_if end_if RETURN V_NMM: active bouton_NMM% : on_click bouton_NMM%,V_NMM2 : on_key_up edit_NMM%,V_NMM1 RETURN V_NMM1: if key_up_code=13 then gosub V_NMM2 RETURN V_NMM2: if numeric(text$(edit_NMM%))=0 message "La valeur de MAIN_MENU doit être un nombre" : text edit_NMM%,"" : set_focus edit_NMM% : return else if val(text$(edit_NMM%))<1 message "La valeur de MAIN_MENU doit être supérieure à zéro" : text edit_NMM%,"" : set_focus edit_NMM% : return else if val(text$(edit_NMM%))=<n% message "La valeur de MAIN_MENU ne doit pas être inférireure ou égale à COMMAND_TARGET_IS" : text edit_NMM%,"" : set_focus edit_NMM% : return else if val(text$(edit_NMM%))>4000 message "La valeur de MAIN_MENU ne peut pas être supérieur à 4000" : text edit_NMM%,"" : set_focus edit_NMM% : return else inactive edit_NMM% : inactive bouton_NMM% show Ctnr% : set_focus Ctnr% on_click option_cl%, V_OP_NUM : on_click option_vr%, V_OP_NUM end_if end_if end_if end_if RETURN V_OP_NUM: NMM%=val(text$(edit_NMM%)) : Parent_Prov%=NMM% : nm%=NMM% item_add Dlist_Code%," MAIN_MENU "+str$(NMM%) show bouton_GVC% : inactive bouton_GVC% : show bouton_visu% : inactive Ctnr% : MAIN_MENU NMM% Redemarre: if nm%>NMM% caption info%,"Cliquez sur le bouton de votre choix" : active BT_Aj_Menu% else caption info%,"Cliquez sur le bouton Ajouter un menu" : active BT_Aj_Menu% end_if show BT_Aj_Menu% : active BT_Aj_Menu% : on_click BT_Aj_Menu%,Aj_Menu if nm%>NMM% then show BT_Aj_SMenu% : active BT_Aj_SMenu% : on_click BT_Aj_SMenu%,Aj_SMenu RETURN Recommence: gosub fin RETURN SUB inactive_boutons() inactive BT_Aj_Menu% : inactive BT_Aj_SMenu% END_SUB SUB active_boutons() active BT_Aj_Menu% : active BT_Aj_SMenu% END_SUB SUB Inactive_main_menu() for n%=NMM%+1 to nm% : inactive n% : next n% END_SUB SUB active_main_menu() for n%=NMM%+1 to nm% : active n% :maxn%=n% : next n% END_SUB rem ============================================================================ Sub Ctrl_si_Caractere_Interdit(car1$) if okc$="E" and asc(car1$)=32 then message "l'espace est interdit dans un label" : okc$="N" : exit_sub okc$="" if asc(car1$)>0 and asc(car1$)<32 then message_car_interdit(car1$) if asc(car1$)>32 and asc(car1$)<48 then message_car_interdit(car1$) if asc(car1$)>57 and asc(car1$)<60 then message_car_interdit(car1$) if asc(car1$)>90 and asc(car1$)<95 then message_car_interdit(car1$) if asc(car1$)=96 then message_car_interdit(car1$) if asc(car1$)>122 then message_car_interdit(car1$) End_sub Sub message_car_interdit(car$) message "Le caratère [ "+car$+" ] est interdit":okc$="N" End_sub ' ------------------------ SUB substitue(chaine$,cb$,cc$) :' retourne a$ a$="" dim_local i%,item$ for i%=1 to len(chaine$) EXPLODE(cc$,chaine$) next i% for i%=1 to count(Dlist_tri%) item$=item_read$(Dlist_tri%,i%) a$=a$+item$+cb$ next i% a$=left$(a$,len(a$)-1) clear Dlist_tri% END_SUB ' ----------------------------- SUB EXPLODE(delimiter$,chaine$):' Nardo modifié JC clear Dlist_tri% WHILE INSTR(chaine$,delimiter$)<>0 ITEM_ADD Dlist_tri%,LEFT$(chaine$,INSTR(chaine$,delimiter$)-1) chaine$=RIGHT$(chaine$,LEN(chaine$)-INSTR(chaine$,delimiter$)) END_WHILE ITEM_ADD Dlist_tri%,chaine$ END_SUB
N'hésitez pas à faire vos critiques et commentaires. A+ PS: le code à été remplacé le 01/10/2015 à 18h37 (un petit bug corrigé) | |
|