FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Fermeture de FORM Emptypar Klaus Aujourd'hui à 0:24

» PANORAMIC V 1
Fermeture de FORM Emptypar Marc Hier à 19:51

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Fermeture de FORM Emptypar Froggy One Hier à 11:16

» @Jack
Fermeture de FORM Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Fermeture de FORM Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Fermeture de FORM Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Fermeture de FORM Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Fermeture de FORM Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Fermeture de FORM Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Fermeture de FORM Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Fermeture de FORM Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Fermeture de FORM Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Fermeture de FORM Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Fermeture de FORM Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Fermeture de FORM Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 Fermeture de FORM

Aller en bas 
3 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Fermeture de FORM   Fermeture de FORM EmptyMar 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+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMar 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+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMar 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.
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMar 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+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMar 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+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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:
Fermeture de FORM 0frame haut
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]
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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
Fermeture de FORM 145249

image à copier sous le nom de: croix.jpg
Fermeture de FORM 145252

image à copier sous le nom de: croixdown.jpg
Fermeture de FORM 145253

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
@+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Fermeture de FORM Empty
MessageSujet: re   Fermeture de FORM EmptyMer 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
@+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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+
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 21 Oct 2009 - 16:18

lol!

en parlant de language, LOL, voila un truc que je ne connais pas. Moi aussi je ne suis pas dans le coup.
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Fermeture de FORM Empty
MessageSujet: re   Fermeture de FORM EmptyMer 21 Oct 2009 - 16:20

cé koi LOL
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 21 Oct 2009 - 16:26

c'est une question ou une réponse.
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Fermeture de FORM Empty
MessageSujet: re   Fermeture de FORM EmptyMer 21 Oct 2009 - 16:31

salut

c'était une question - pardon

Georges
@+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyMer 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.
Revenir en haut Aller en bas
Invité
Invité




Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyJeu 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+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyVen 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
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyVen 23 Oct 2009 - 17:33

Code:

rem gp install

file_open_write 1,"gputilis.gp1"
file_writeln 1,""
file_close 1


Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyVen 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
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM EmptyVen 23 Oct 2009 - 17:40

n'hesiter pas à poser des questions ou fournir des commentaires
A+
Revenir en haut Aller en bas
Contenu sponsorisé





Fermeture de FORM Empty
MessageSujet: Re: Fermeture de FORM   Fermeture de FORM Empty

Revenir en haut Aller en bas
 
Fermeture de FORM
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Fermeture d'un form N
» [R]Fermeture des programmes
» ON_CLOSE - Empêcher la fermeture d'une form !
»  Désactiver / activer la croix X de fermeture d'un FORM et +
» NO_CLOSE N pour choisir d'annuler la fermeture d'un form

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: