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 |
|
|
| Fermeture de FORM | |
| | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Fermeture de FORM Mar 20 Oct 2009 - 18:18 | |
| bonsoir à tous,
existe t-il un moyen de savoir si un utilisateur a cliqué dans le bouton de fermeture d'un FORM (dans le bandeau) pour pouvoir traiter l'évènement. Dans le cas d'un programme avec plusieurs FORM, ce serait bien utile.
A+ | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mar 20 Oct 2009 - 20:21 | |
| Salut JC Je n'ai pas vraiment de réponse, je me suis moi même posé la question. Je m'étais demandé pourquoi le programme en exemple "clock", on ne pouvait pas l'arrêter par le bouton de fermeture. Je viens d'étudier le programme, et là j'ai compris que l'on était dans une boucle infini avec goto, et seulement le clic d'un bouton pouvait arrêter le programme. Cela ne parait pas possible dans un programme avec plusieurs formes, vu que les on_click te branchent sur une procédure extérieure et là on est dans le cas d'une violation avec un return. J'ai fais l'essai sur un de mes programme, et c'est ce qui se passe. Peut-être en faisant un programme sans return avec des sauts de module en module, et en se branchant sur le label de raccordement , cela fonctionne. Cette possibilité est peut-être valable, il faut l'essayer pour le savoir. En tout cas, si cela marche, il faut prévoir le programme en conséquence depuis le début. Il est évident qu'il faudra mettre un flag pour savoir si la forme a été fermé ou non, pour l'éviter dans ce cas. Je sais pas si je me suis bien fait comprendre, toujours est-il que seul l'essai peut le dire. A+ |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mar 20 Oct 2009 - 20:38 | |
| Je te remercie de ta réponse Cosmos70,
J'ai compris ce que tu explique, mais je ne me vois pas gérer un code par une boucle permanente. Il y a bien l'astuce de créer un Form "artificiel" (ce que j'ai deja fait) mais c'est la prise de tête. Dis moi si je me trompe, je suppose que FORM est une fenêtre Windows et que de ce fait le boutton quitter n'appatient pas a PANORAMIC. Y aurait-il une possibilité avec un truc auquel je ne comprends rien, je parle des DLL.
A+
Je viens de te relire, tu peus-tu m'expliquer ce qu'est un FLAG. | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mar 20 Oct 2009 - 20:54 | |
| Il m'est venu une idée, mais mon ordi s'est planté avant que je puisse aller jusqu'au bout. Je viens de me brancher avec le petit. Essaye de voir si il est possible de mettre un bouton par dessus le bouton de fermeture avec un height négatif si c'est possible. Si il y a un bouton par dessus, il prends le contrôle. Là je suis à table, je verrais plus tard. A+ |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mar 20 Oct 2009 - 22:06 | |
| Le post que j'ai fait il y a une heure, ne fonctionne pas. On ne peut pas mettre un bouton sur la barre au dessus. Il y a une possibilité qui marche: - Code:
-
dim a label fin
button 1 left 1,270 top 1,00 on_click 1,fin
width 0,300 :top 0,20 border_hide 0 end fin: terminate
C'est de faire une forme sans bordure. Si tu veux en faire paraitre une, tu fais une copie d'écran avec la forme normale, et tu ne garde que la barre. Avec un picture tu l'affiches, et avec un bouton qui serait aussi un micro picture de la forme de la case de fermeture, tu l'affiche à cet endroit là. A partir de là tu controle ce que tu veux. Cela fait beaucoup de chose, mais je ne vois pas d'autre solution. Je ne pense pas que Jack est le temps de faire une fonction particulière pour ça. Désolé de ne peut mieux faire. A+ |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 10:29 | |
| Oui c'est bien çà que j'ai déja testé, mais la question c'est que je veus simplement savoir si le FORM a été fermé. Apparement tu n'a pas vu ma deuxième question dans ma première réponse - Citation :
- Je viens de te relire, peus-tu m'expliquer ce qu'est un FLAG.
Ou un exemple, je pense que j'ai encore beaucoups à apprendre. A+ | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 11:36 | |
| Désolé Un flag pour moi est une variable repère. Voilà: Au départ tu mets tes variables pour un objet à zéro. Si tu ouvres un objet dont tu veux suivre l'évolution, tu mets la variable en rapport à 1 (par exemple). Si tu supprime cet objet, tu là remets à zéro. Ainsi tu sauras toujours si tel objet est présent ou non. Chiao Je réédite dans le cas que tu aurais déjà regardé. Actuellement une variable sur une forme ne sert à rien. Si tu suis ma proposition, là tu peux mettre une variable pour la forme, vu que le clic sur la fermeture est contrôlé. A+ |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 13:07 | |
| Je viens de faire un programme d'essai pour évaluer mes propos. Il faut d'abord téléchager une image qui va avec le code: http://monimag.eu/upload/302/0frame haut.jpg Je viens de faire plusieurs essais, et apparemment ça ne marche pas. Pour essayer le programme, mettre de côté file_load..., ça n'emêche pas d'essayer, il suffit de cliquer à la place de la case de fermeture - Code:
-
dim x ,larg ,haut ,forme1% label essai,fin
left 0,100:top 0,100:width 0,800:height 0,500
larg=500 form 1:left 1,200:top 1,150:width 1,larg:height 1,200:border_hide 1:color 1,255,243,162
forme1%=1:rem la form 1 est créée donc on le note button 2:parent 2,1:left 2,50:top 2,100 : on_click 2,fin
picture 3:parent 3,1:top 3,0:left 3,0:width 3,larg:height 3,35 :color 3,190,200,135 file_load 3,"frame haut.jpg" on_click 3,essai
end
essai: x= mouse_x_position(3) if x > (larg-30) delete 1 :forme1%=0 message "la forme 1 est ferméee, et la valeur du flag de cette fenêtre est:"+str$(forme1%) end_if return
fin: terminate
Le programme fonctionne jusqu'au message, mais voila: Je comprends pas Jack, pourquoi j'ai une violation ensuite. Qu'est-ce qui n'est pas pas permis?Le programme devrait fonctionner. Tout ce que j'ai dit finalement est faux. Qu'est ce que c'est dure de programmer pour rien! merci à vous, je vais me reposer. @+, je suis nul[i] |
| | | Georges
Nombre de messages : 290 Age : 55 Localisation : Martinique Date d'inscription : 29/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 14:09 | |
| salut à tous J'avais fais ce code pour traiter l'évènement en sortie de croix du bandeau. c'est une astuce pour contourner l'original. C'est mieux que rien, qu'en pensez-vous? image à copier sous le nom de: bandeau1.jpg image à copier sous le nom de: croix.jpg image à copier sous le nom de: croixdown.jpg - Code:
-
label suite,suite1
top 0,250 : left 0,350 : width 0,466 : height 0,350 color 0,0,150,255 border_hide 0 picture 1 top 1,0 : left 1,0 : width 1,450 : height 1,16 file_load 1,"bandeau1.jpg" picture 2 top 2,0 : left 2,450 : width 2,16 : height 2,16 file_load 2,"croix.jpg" on_click 2,suite1 button 3 top 3,300 : left 3,350 : width 3,80 : height 3,25 caption 3,"terminer" on_click 3,suite end suite1: file_load 2,"croixdown.jpg" wait 300 file_load 2,"croix.jpg" wait 250 suite: message "vous pouvez utilisez cette zone du code pour enregistrer vos données ou traiter l'évènement" terminate
Georges @+ | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 14:32 | |
| Salut Georges Comment fais-tu pour copier tes images, il n'y a pas de lien (copie d'écran?). A partir du moment que la bordure est hide, tout est permit. Mois j'essaye de simuler une fausse bordure, mais est ce que cela est utile. Toujours est-il que si j'enlève par delete une forme, j'ai une violation, et ce que veux Jean Claude, c'est de savoir si une forme est fermée ou non, dans son programme. Je pense que vu les problèmes que peut poser la fermeture d'une forme, il est préférable comme tu l'as fais (et moi aussi d'ailleurs)t d'enlever la bordure, comme cela: impossible de fermer par erreur, puis de la rendre invisible ensuite, jusqu'à la fin du programme. Il sera toujours temps ensuite de la rendre visible si nécessaire. La question est: peut-on ajouter un nouvelle objet, après que le programme a lu "END"?. Dans justbasic une forme peut-être détruite et reconstruite ensuite sans problème, je ne pense que cela soit le cas avec Panoramic. Je rajoute ceci: on peut ajouter une variable pour savoir si la forme est visible ou non, de se fait, on programme en conséquence. A+ Je viens de refaire d'autres essais en composant le programme différemment, et même résultat, il vaut mieux rendre invisible une forme plutôt que de l'effacer, à moins évidemment que cela soit la form 0, dans ce cas Jean Claude, mets un bandeau avec un titre et une bordure invisible, tu pourras contrôler la sortie du programme. Seul problème, la forme est statique, on ne peut la déplacer, il faut que le programme le prévoie en modifiant top 0 et left 0. A+
Dernière édition par cosmos70 le Mer 21 Oct 2009 - 14:59, édité 1 fois |
| | | Georges
Nombre de messages : 290 Age : 55 Localisation : Martinique Date d'inscription : 29/05/2009
| Sujet: re Mer 21 Oct 2009 - 14:46 | |
| salut Cosmos70 Si j'ai bien compris ta question. Pour récupérer les images, il suffit de positionner le pointeur de la souris sur l'image, d'un click droit d'effectuer un copier coller et ensuite de renommer l'image suivant le programme qui l'utilise. Georges @+ | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 15:04 | |
| Les images n'ont pas du tout le même format, et ne sont pas à l'échelle de ton programme. De toute façon j'ai compris ce que tu voulais faire, et j'y ai répondu. Salut à toi. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 15:54 | |
| j'ai essayé vos codes,
Celui de Georges, je l'avais déja et conservé pour le cas ou... Celui de Cosmos70 ne marche pas tout à fait bien, mais j'ai compris ce qu'il appelle un flag (je n'avais jamais pensé a affecté une variable pour un objet)
De toutes façons je ne cherche pas à créer un "faux form", car j'ai besoin de garder le CAPTION et travailler sur un mémo ce n'est pas pratique.
Ma question en fait est de savoir si le form est HIDE ou pas.
Je me suis demandé si avec DLL, il y aurait une solution, mais je ne comprend rien à ce truc.
Merci à tout les deux.
A+ | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 15:54 | |
| As la question de Jean Claude qui me demande ce qu'est un flag. Cela revient pour moi, loin en arrière. En fait on utilisait ce mot lorsqu'on faisait du langage machine, et je crois qu'on la transposé machinalement entre nous pour le basic d'alors. Je ne pense pas qu'il soit très approprier aujourd'hui pour ce langage. Cela faisait plus de 20 ans que je parlais de programmation (vu que j'étais le seul à en faire parmis mes connaissances) jusqu'à ce que poste sur ce forum. Il est temps pour moi, de faire gaffe à ce que je dis, et me mettre en conformité avec le monde d'aujourd'hui. A+ Je viens de voir ta réponse, j'ai pas été assez vite. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 16:18 | |
| en parlant de language, LOL, voila un truc que je ne connais pas. Moi aussi je ne suis pas dans le coup. | |
| | | Georges
Nombre de messages : 290 Age : 55 Localisation : Martinique Date d'inscription : 29/05/2009
| Sujet: re Mer 21 Oct 2009 - 16:20 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 16:26 | |
| c'est une question ou une réponse. | |
| | | Georges
Nombre de messages : 290 Age : 55 Localisation : Martinique Date d'inscription : 29/05/2009
| Sujet: re Mer 21 Oct 2009 - 16:31 | |
| salut c'était une question - pardon Georges @+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 16:39 | |
| Pour Georges, LOL = "Laughing Out Loud" équivalent à rire à gorge déployée, ou plus simplement mort de rire comme on dit maintenant. T'es plus dans le coup. Et moi non plus. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Mer 21 Oct 2009 - 16:42 | |
| pendant que tu envoyais ton message JL35, j'étais en train de regarder sur le net. Moi aussi je ne suis plus dans le coup. | |
| | | Invité Invité
| Sujet: Re: Fermeture de FORM Jeu 22 Oct 2009 - 1:15 | |
| Suite au problème de form. Il y a un problème avec les clics de souris. cela fonctionne parfaitement pour activer un objet, mais si on veut déplacer un objet, comme une fenêtre, on est confronté à ceci. Le clic d'une souris n'est actif que lors du relachement du bouton. Si on veut par exemple déplacer une fenêtre, il faut d'abord relacher le bouton pour que le clic devenu actif, puisse se brancher au sous programme. Donc, on reclique pour vouloir déplacer l'objet. Si l'objet est petit, on se trouve devant le problème suivant: on déplace la souris le doigt enfoncé, mais très vite on dépasse l'objet, et le clic étant en rapport avec le numéro d'objet, en dehors de l'objet, il n'y a plus de repérage (on est ailleurs). Je ne sais pas si vous arrivez à me comprendre. Un objet a un numéro, exemple: - Code:
-
form 1:on_clic 1,branchement Si on clique sur le bandeau, on est à gauche, pour déplacer la forme à gauche, on sort la souris de la forme. idem du côté droit. idem pour aller vers le haut. De plus, après tous les essais que j'ai fait avec les répeat/until, il semble qu'on se trouve devant les mêmes problèmes qu'avec scancode. Le premier clic ça marche, ensuite il semble que les autres clics sont sans effet (Jack disais qu'il restait en mémoire et n'était pas actualisé). J'ai passé 2/3 heures à modifier un programme teste, avec les commandes clicked(), mouse_left_up(), mouse_left_down(), mouse_right_up(), mouse_right_down(), mouse_x_position() ..., je ne m'en sort pas. Si quelqu'un veut essayer à son tour, je ne donne pas de code, il vaut mieux repartir avec des yeux neufs qui ne soient pas influencés par un codage qui ne marche pas, mais je pense que le déplacement d'une fenêtre ou autre avec la souris, est prohibé. Pour l'instant, je laisse ceci sur ce poste, parce que c'est en voulant travailler sur la fermeture d'une forme, que je me suis attaqué à cela. J'ai une solution pour faire une forme sans bordure avec un semblant de forme normale, avec un contrôle de fermeture, seulement il y a le fait que la forme est statique, et je voulais pouvoir agir sur la forme, comme une forme ordinaire. C'est pas seulement pour Jean Claude, mais j'avais le même problème pour moi. A+ |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Ven 23 Oct 2009 - 17:30 | |
| à TOUS,
Essayer ce code j'ai réussi à faire un "faux FORM" qui marche
créer le fichier avec le petit code et ensuite lancer "gdadmini"
Faite les démarches demandés (le form 0 ,le 100 et 200 sont de type normal) par contre vous verez le 300. il sont tous à centrage automatique mais le 300 à un + , il est modifiable en largeur et en hauteur sans affecté la position du boutton et le bandeau suit le mouvement. De plus on peut sans risque d'erreur le fermer et revenir dessus même si la tache n'est pas terminée.
Je vous laissent le soin de regarder
A+
j'envoi les codes séparément, car çà fait 2 fois que je plante | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Ven 23 Oct 2009 - 17:33 | |
| - Code:
-
rem gp install
file_open_write 1,"gputilis.gp1" file_writeln 1,"" file_close 1
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Ven 23 Oct 2009 - 17:37 | |
| - Code:
-
' gdadmini
' ========================================================================= ==> LABEL label creform,crememo,acces,fin,chargeutil,initutil,initutil2,initutil3,initutil4 label initutil5,initutil6,inituti3,enregutil,sauveutil,acc1,acc2,acc3,acc4 label ajoututil,ajoutil,ajut1,ajut2,doublon,cle,ajut3,enregajut,abajut,vid1,ajoutu label cadreform,cadrebuton,bandeau,crememo2
' =============================================================================> DIM dim nf%,lf,hf,x,y,left%,top%,width%,height%,r,v,b,rf,vf,bf,fnf$,capnf$,hm,lm,hsm x=screen_x:y=screen_y dim nomutil$,mdputil$,gradutil$,progutil$ dim nvnomutil$,nvmdputil$,nvgradutil$,nvprogutil$ dim a$,b$,c$,d$,e$,f$,r$,ok$,cle$,nv$,txtband$ dim a,n,nu,nv,itd,n98,n99,lp,no
' ======================================================================== ==> FORM 0 nf%=0:lf=700:hf=500:rf=150:vf=240:bf=255:fnf$="Fixedsys" capnf$=" Administration ":gosub creform
' ==========================================================================> FORM 100 nf%=100:form nf%:lf=700:hf=500:rf=150:vf=240:bf=255:fnf$="Fixedsys" capnf$=" Initialisation du programme" gosub creform:hide nf%
' ==========================================================================> FORM 200 nf%=200:form nf%:lf=700:hf=500:rf=150:vf=240:bf=255:fnf$="Fixedsys" capnf$=" Accès au programme" gosub creform:hide nf% ' ==========================================================================> FORM 300 nf%=300:form nf%:lf=700:hf=500:rf=100:vf=240:bf=255:fnf$="Fixedsys" capnf$=" Création d'un Utilisateur" gosub creform:border_hide nf% 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 rem OPTIONS DU MENU UTILISATEURS sub_menu 1016 : caption 1016," Ajouter " : parent 1016, 1004:on_click 1016,ajoututil sub_menu 1017 : caption 1017," Modifier " : parent 1017, 1004 sub_menu 1018 : caption 1018," Supprimer " : parent 1018, 1004
dlist 98: rem contient l'utilisteur en cours et ses attributs dlist 99: rem contient tout les utilisateurs au chargement initial
command_target_is 300 alpha 303:top 303,110:left 303,40:caption 303,"Identifiant":hide 303 edit 304:top 304,130:left 304,30:hide 304 alpha 305:top 305,170:left 305,40:caption 305,"STATUT":hide 305 combo 306:top 306,190:left 306,30 item_add 306,"ACTIVE":item_add 306,"DESACTIVE":item_add 306,"ADMINISTRATEUR":hide 306 check 307:top 307,110:left 307,370:width 307,140:caption 307,"Achats":hide 307 check 308:top 308,130:left 308,370:width 308,140:caption 308,"Interventions":hide 308 check 309:top 309,150:left 309,370:width 309,140:caption 309,"Stock,":hide 309 check 310:top 310,170:left 310,370:width 310,140:caption 310,"Statistiques":hide 310 check 311:top 311,190:left 311,370:width 311,140:caption 311,"Véhicules":hide 311 check 312:top 312,210:left 312,370:width 312,140:caption 312,"Base Article":hide 312 button 313:top 313,420:left 313,565:width 313,100:caption 313,"VALIDER":hide 313 button 314:top 314,420:left 314,25:width 314,100:caption 314,"ABANDON":hide 314 for n=307 to 314:hide n:next n button 315:top 315,11:left 315,lf-35:width 315,25:caption 315,"X":hide 315 hm=100:hsm=100:r=255:v=255:b=235:fnf$="Fixedsys":gosub crememo txtband$=caption$(nf%):gosub crememo2
END ' ================================================================ ====> PROG PRINCIPALE '_______________________________________________________________________________________ rem ajouter un utilisteur ajoututil: inactive 0:nf%=300:show nf% 2d_clear gosub cadreform show 315:on_click 315,ajoutu lp=3:no=315:r=255:v=0:b=0 gosub cadrebuton r=0:v=0:b=255:gosub bandeau goto ajoutil return
ajoutu: gosub vid1:hide nf%:active 0 return
ajoutil: print:print " Entrez l'Identifiant du nouvel Utilisateur (15 caractères Maximum)" print:print " Eviter les caractères spéciaux et ponctuation" show 303:show 304:active 304 set_focus 304 on_key_up 304,ajut1 return
ajut1: if key_up_code=13 then a$=upper$(text$(304)):gosub ajut2 return
ajut2: if a$="" then message "Saisie Vide":return if len(a$)>15 then message "15 caractères Maximum":text 304,"":return text 304,a$:inactive 304 r$=a$:a$="":ok$="" gosub doublon if ok$="N" then text 304,"":active 304:set_focus 304:return clear 301 if ok$="O" then print:print " "+r$+" est l'Utilisateur N° ";nv gosub cle message "ATTENTION: Notez cette clé et donnez-la à "+r$+chr$(13)+chr$(13)+"CLE: "+cle$+chr$(13)+chr$(13)+" Pour qu'il puisse se créer un Mot de Passe" nvnomutil$=r$:nvmdputil$=cle$ show 305:show 306:active 306 set_focus 306:clear 301 print:print " Choisissez le Statut pour "+nvnomutil$ print:print " ATTENTION le Statut Administrateur donne accès à ce programme d'administration" print " Le Statut désactvé interdit l'accès à tout les programmes" on_click 306,ajut3 return
ajut3: a$=upper$(text$(306)) nvgradutil$=a$ inactive 306:clear 301 print:print " Cochez tous les programmes auxquels, "+nvnomutil$+", aura accès " for n=307 to 314:show n:next n on_click 314,abajut on_click 313,enregajut return
abajut: gosub vid1:goto ajoutil return
enregajut: if checked(307)=1 then a$="A" if checked(307)=0 then a$="*" if checked(308)=1 then b$="I" if checked(308)=0 then b$="*" if checked(309)=1 then c$="K" if checked(309)=0 then c$="*" if checked(310)=1 then d$="S" if checked(310)=0 then d$="*" if checked(311)=1 then e$="V" if checked(311)=0 then e$="*" if checked(312)=1 then f$="B" if checked(312)=0 then f$="*" nvprogutil$=a$+b$+c$+d$+e$+f$ clear 301:print " "+nvprogutil$ file_open_append 1,"gputilis.gp1" file_writeln 1,nvnomutil$ file_writeln 1,nvmdputil$ file_writeln 1,nvgradutil$ file_writeln 1,nvprogutil$ file_close 1 gosub vid1:goto ajoutil return
vid1: clear 301:clear 99 a$="":b$="":c$="":d$="":e$="":f$="":r$="":ok$="":cle$="":nv$="" nvnomutil$="":nvmdputil$="":nvgradutil$="":nvprogutil$="" for n=307 to 312:mark_off n:next n for n=303 to 314:hide n:next n a=0:n=0:nv=0 text 304,"":text 306,"" gosub chargeutil return
doublon: n99=count(99):nv=0 for n=1 to n99 step 4 nv=nv+1 a$=item_read$(99,n) if r$=a$ then message "Cet Utilisateur existe déja":ok$="N":return if a$="" then ok$="O":return next n return
cle: nv=nv*5:nv$=str$(nv) cle$="GP"+nv$+"£" return
'_______________________________________________________________________________________ rem Accès acces: gosub chargeutil:hide 1010 if n99=0 then goto initutil for n=1 to n99 step 4 nomutil$=item_read$(99,n) item_add 98,nomutil$ next n
rem show 1004:return:rem <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< a virer
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%,rf,vf,bf: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
cadreform: 2d_target_is nf% 2d_pen_color 0,0,255 2d_pen_width 6 2d_rectangle 1,1,lf-1,hf-1 return
cadrebuton: 2d_target_is nf% 2d_pen_color r,v,b 2d_pen_width lp 2d_rectangle left(no)-(lp-1),top(no)-(lp-1),left(no)+width(no)+(lp-1),top(no)+height(no)+(lp-1) return
bandeau: 2d_target_is nf% 2d_pen_color r,v,b 2d_pen_width lp 2d_rectangle 10,10,lf-45,hf-hf+37 print_target_is nf% print_locate 20,20:print txtband$ print_target_is nf%+1 return
crememo2: memo nf%+2 top nf%+2,13:left nf%+2,13:width nf%+2,lf-61:height nf%+2,hf-hf+21 color nf%+2,255,230,230 item_add nf%+2,txtband$ return
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) return
rem ____________________________________________________________________________________ fin: terminate
Bon courage
Dernière édition par Jean Claude le Ven 23 Oct 2009 - 20:23, édité 2 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fermeture de FORM Ven 23 Oct 2009 - 17:40 | |
| n'hesiter pas à poser des questions ou fournir des commentaires A+ | |
| | | Contenu sponsorisé
| Sujet: Re: Fermeture de FORM | |
| |
| | | | Fermeture de FORM | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |