Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Des intructions pour l'état de FORM Jeu 22 Oct 2009 - 13:18 | |
| Bonjour à tous et surtout à Jack, Je pense qu'il serait très utile d'avoir des commandes (ou instructions) sur l'état de FORM. EX: v=HIDE(N) résultat v=1 => N est SHOW :v=0 => N est Hide Idem pour ACTIVE Le but est de savoir si un utilisateur a fermé un FORM, dans un programme qui en contient plusieurs et de pouvoir traiter le code en conséquence. Car actuellement dans PANORAMIC on peut fermer un Form sans que le programme en soit averti et surtout cette fermeture n'enraine pas de "CLEAR" des variables et objets de ce form. Donc si on reviens sur ce FORM il n'est pas réinitalisé et l'exécution du programme s'en trouve très affecté. J'espère avoir fait comprendre mon besoin (et surement celui de beaucoups d'autres) Pour Jack Bien sur, je mets cette demande dans la liste d'attente, je veus juste savoir si elle est fondée et si elle aura un avenir.A+ un exemple: - Code:
-
rem pour pouvoir lancer le suivant
file_open_write 1,"gputilis.gp1" file_writeln 1,"" file_close 1
- Code:
-
' =============================================================================> LABEL label creform,crememo,acces,fin,chargeutil,initutil,initutil2,initutil3,initutil4 label initutil5,initutil6,inituti3,enregutil,sauveutil,acc1,acc2,acc3,acc4
' =============================================================================> DIM dim nf%,lf,hf,x,y,left%,top%,width%,height%,r,v,b,fnf$,capnf$,hm,lm,hsm x=screen_x:y=screen_y dim nomutil$,mdputil$,gradutil$,progutil$ dim a$,r$,ok$ dim a,n,nu,n98,n99
' =============================================================================> FORM 0 nf%=0:lf=1100:hf=600:r=150:v=240:b=255:fnf$="Fixedsys" capnf$=" Administration ":gosub creform
' =============================================================================> FORM 100 nf%=100:form nf%:lf=700:hf=500:r=150:v=240:b=255:fnf$="Fixedsys" capnf$=" Initialisation du programme" gosub creform:hide nf%
' =============================================================================> FORM 200 nf%=200:form nf%:lf=700:hf=500:r=150:v=240:b=255:fnf$="Fixedsys" capnf$=" Accès au programme" gosub creform:hide nf%
' =============================================================================> PROG avant end main_menu 1000:rem CREATION DES MENUS sub_menu 1002 : caption 1002," Fichier " : parent 1002, 1000 sub_menu 1003 : caption 1003," Edition " : parent 1003, 1000:hide 1003 sub_menu 1004 : caption 1004," Utilisateurs " : parent 1004, 1000:hide 1004 sub_menu 1005 : caption 1005,"" : parent 1005, 1000 sub_menu 1006 : caption 1006,"" : parent 1006, 1000 sub_menu 1007 : caption 1007,"" : parent 1007, 1000 sub_menu 1008 : caption 1008,"" : parent 1008, 1000 sub_menu 1009 : caption 1009,"" : parent 1009, 1000 rem OPTIONS DU MENU FICHIER sub_menu 1010 : caption 1010,"Ouvrir" : parent 1010, 1002:on_click 1010,acces sub_menu 1011 : caption 1011,"QUITTER" : parent 1011,1002:on_click 1011,fin rem OPTIONS DU MENU EDITION sub_menu 1012 : caption 1012," Annuler " : parent 1012, 1003 sub_menu 1013 : caption 1013," Copier " : parent 1013, 1003 sub_menu 1014 : caption 1014," Coller " : parent 1014, 1003 sub_menu 1015 : caption 1015," Supprimer " : parent 1015, 1003
list 98:list 99 top 99,100 END ' =============================================================================> PROG PRINCIPALE '_______________________________________________________________________________________ rem Accès acces: gosub chargeutil:hide 1010 for n=1 to n99 step 4 nomutil$=item_read$(99,n) if n=1 and nomutil$="" then gosub initutil item_add 98,nomutil$ next n inactive 0:nf%=200:show nf% command_target_is nf% hm=100:hsm=100:r=255:v=255:b=235:fnf$="Fixedsys":gosub crememo print:print " Entrez votre Identifiant" alpha 203:top 203,52:left 203,210:caption 203,"Identifiant =>" edit 204:top 204,50:left 204,350 set_focus 204 on_key_up 204,acc1 return
acc1: if key_up_code=13 then a$=upper$(text$(204)):gosub acc2 return
acc2: if a$="" then message "Saisie Vide":return if len(a$)>15 then message "15 caractères Maximum":text 204,"":return text 204,a$:inactive 204 r$=a$:a$="":ok$="" clear 201 n98=count(98) for n=1 to n98 a$=item_read$(98,n) if r$=a$ then nomutil$=a$:ok$="O":nu=n next n if ok$="" then message ""+r$+" Vous n'êtes pas inscrit(e)":text 204,"":active 204:set_focus 204:return clear 98 for n=1 to n99 a$=item_read$(99,n) if a$=nomutil$ then for x=n to x+3:a$=item_read$(99,x):item_add 98,a$:next x next n n98=count(98) n=1:nomutil$=item_read$(98,n) n=2:mdputil$=item_read$(98,n) n=3:gradutil$=item_read$(98,n) n=4:progutil$=item_read$(98,n) print:print " Entrez votre Mot de Passe" alpha 205:top 205,102:left 205,200:caption 205,"Mot de Passe =>" edit 206:top 206,100:left 206,350:font_color 206,255,255,255 set_focus 206:on_key_up 206,acc3 return
acc3: if key_up_code=13 then a$=upper$(text$(206)):gosub acc4 return
acc4: if a$="" then message "Saisie Vide":return text 206,"":inactive 206 clear 201 r$=a$:a$="" if r$<>mdputil$ then message " "+nomutil$+" Votre Mot de Passe est faux":text 206,"":active 206:set_focus 206:return if gradutil$="ADMIN" or gradutil$="ADMINISTRATEUR" then active 0:hide nf%:show 1004:return message " "+nomutil$+" Vous n'êtes pas autorisé sur cette partie du programme":goto fin return '_______________________________________________________________________________________ rem Initialisation du premier utilisateur initutil: inactive 0:nf%=100:show nf% command_target_is nf% hm=100:hsm=100:r=255:v=255:b=235:fnf$="Fixedsys":gosub crememo print:print " Vous êtes le premier utilisateur de ce programme" print " Vous serez l'Adimistrateur Principale" print " Vous Choisirez pour chaque utilisateur son niveau de délégation" button 102:top 102,420:left 102,565:width 102,100:caption 102,"CONTINUER" set_focus 102:on_click 102,initutil2 return
initutil2: clear 101:hide 102 alpha 103:top 103,52:left 103,210:caption 103,"Identifiant =>" edit 104:top 104,50:left 104,350 print:print " Votre Clavier doit être sur minuscules" print " Vous pouvez utiliser les chiffres, lettres et espace" print " 15 caractères Maximum" set_focus 104 on_key_up 104,initutil3 return
initutil3: if key_up_code=13 then a$=upper$(text$(104)):gosub initutil4 return
initutil4: if a$="" then message "Saisie Vide":return if len(a$)>15 then message "15 caractères Maximum":text 104,"":return text 104,a$:inactive 104 nomutil$=a$:a$="" clear 101 alpha 105:top 105,102:left 105,200:caption 105,"Mot de Passe =>" edit 106:top 106,100:left 106,350:font_color 106,255,255,255 print:print " Votre Clavier doit être sur minuscules" print " Vous pouvez utiliser les chiffres, lettres, caractères spéciaux mais pas" print " d'espaces" print " 15 caractères Maximum" inituti3: set_focus 106:on_key_up 106,initutil5 return
initutil5: if key_up_code=13 then a$=upper$(text$(106)):gosub initutil6 return
initutil6: if a$="" then message "Saisie Vide":return if len(a$)>15 then message "15 caractères Maximum":text 106,"":return text 106,"":inactive 106 clear 101 button 107:top 107,420:left 107,565:width 107,100:caption 107,"VALIDER" button 108:top 108,420:left 108,25:width 108,100:caption 108,"ABANDON" print:print " Le programme va être relancé pour validation" on_click 108,fin on_click 107,enregutil return
enregutil: clear 101:hide 107:hide 108:hide 100:show 0 mdputil$=a$:gradutil$="ADMIN":progutil$="AIKSVB" gosub sauveutil execute "gpadmini.exe":goto fin return '_______________________________________________________________________________________ rem Creform creform: caption nf%,capnf$:color nf%,r,v,b:font_name nf%,fnf$:width%=lf:height%=hf width nf%,width%:height nf%,height%:left%=(x-width%)/2:top%=(y-height%)/2 top nf%,top%:left nf%,left% return rem Crememo crememo: memo nf%+1:lm=width%-50:width nf%+1,lm:left nf%+1,(lf-lm-10)/2 height nf%+1,hm:top nf%+1,hf-(hm+hsm):color nf%+1,r,v,b:print_target_is nf%+1 font_name nf%+1,fnf$:font_color nf%+1,0,0,255 return rem ____________________________________________________________________________________ sauveutil: file_open_write 1,"gputilis.gp1" file_writeln 1,nomutil$ file_writeln 1,mdputil$ file_writeln 1,gradutil$ file_writeln 1,progutil$ file_close 1 return
chargeutil: file_open_read 1,"gputilis.gp1" while file_eof(1)<>1 file_readln 1,a$ item_add 99,a$ end_while file_close 1 n99=count(99) for n=1 to n99 nomutil$=item_read$(99,n) mdputil$=item_read$(99,n) gradutil$=item_read$(99,n) progutil$=item_read$(99,n) next n:return:rem Charge utilisateurs rem ____________________________________________________________________________________ fin: terminate
Version corrigée à 16h26Dans ce programme j'empeche l'utilisation de FORM 0 pendant que FORM 100 ou 200 sont en fonction, et aprés l'execution complète du programme, j'ai "HIDER" l'option ouvrir du menu fichier pour empêcher l'utilisateur de retouner dand les FORM 100 et 200, mais dans la suite de mon programme je ne pourrais pas le faire car le main_menu est loin d'être complet. Pour ceux que çà intéressent, ce code est un programme réservé a l'aministrateur pour gérer les utilisateurs d'un programme quelquonque. Il n'est pas terminé, c'est pour l'exemple. | |
|