bibi2030
Nombre de messages : 5 Date d'inscription : 28/07/2008
| Sujet: problème de fermeture en programme.exe Ven 22 Aoû 2008 - 14:55 | |
| Bonjour,
j'ai créé un petit programme dont on sort en cliquant sur un bouton "quitter" qui renvoie à un label contenant "end". Dans l'éditeur cela fonctionne bien mais en créant un .exe, il faut cliquer 2 fois sur "quitter" pour vraiment quitter. Avec "terminate" un message d'erreur apparît. Quelle est la solution ? Merci. | |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: problème de fermeture en programme.exe Lun 25 Aoû 2008 - 18:32 | |
| D'après ce que tu expliques, tu crées un bouton et dans le traitement de l'événement "click" sur ce bouton, tu mets soit un end, soit un terminate: traitement de l'événement "click" avec end - Code:
-
label fini button 1 caption 1,"FINI" on_click 1,fini end fini: end return traitement de l'événement "click" avec terminate - Code:
-
label fini button 1 caption 1,"FINI" on_click 1,fini end fini: terminate return Ces 2 codes fonctionnent aussi bien dans l'éditeur que dans un exécutable. Je n'arrive pas à reproduire ton problème. Peux-tu donner un exemple du problème? Il faut signaler que l'instruction END sert uniquement à arrêter le déroulement du programme principal, pour que celui-ci se mette en attente des événements pour les traiter. La présence d'une instruction END dans un sous-programme de traitement d'événement n'est donc pas vraiment justifiée. Mais c'est possible, il n'y a pas d'interdiction. Par contre TERMINATE provoque l'arrêt complet du programme. | |
|
bibi2030
Nombre de messages : 5 Date d'inscription : 28/07/2008
| Sujet: Re: problème de fermeture en programme.exe Mer 3 Sep 2008 - 14:40 | |
| Voici un extrait dans lequel je rencontre ce problème : - Code:
-
dim a$ label att,quitter
rem fenêtre principale left 0,0 width 0,800 height 0,500 top 0,0 caption 0,"Bonjour"
button 1 left 1,680 top 1,420 caption 1,"Quitter"
att: on_click 1,quitter a$=inkey$ if a$="" then goto att end
quitter: hide 0 end return Si je remplace end par terminate j'ai un message d'erreur (violation...) Si je ne mets pas "hide 0", la fenêtre est toujours là. En .exe je dois cliquer 2 fois pour fermer la fenêtre. | |
|
musicgames
Nombre de messages : 55 Date d'inscription : 21/01/2008
| Sujet: Re: problème de fermeture en programme.exe Mer 3 Sep 2008 - 18:39 | |
| Je pense qu' il manque tout simplement dans panoramic un mot-clé qui permettrait de fermer une fenêtre (par exemple CLOSEWINDOW). Cela existe dans d' autres langages basic et je suppose que ce sera ajouté plus tard. Les mots-clés END ou TERMINATE ne sont pas appropriés pour ce genre d' action. | |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: problème de fermeture en programme.exe Mer 3 Sep 2008 - 21:35 | |
| Quand j'examine ton source, je constate que on_click 1,quitter se trouve dans une boucle, ce qui ne sert à rien. on_click 1,quitter rattache l'événement "click sur le bouton numéro 1" à l'exécution du code qui commence par "quitter". Il n'y a pas besoin de le mettre dans une boucle: une seule fois suffit. J'ai déplacé cette ligne et je trouve que ton source fonctionne parfaitement. Quand tu cliques sur le bouton, la fenêtre numéro 0 s'efface. MAIS ton programme est TOUJOURS ACTIF! Dans ce cas, le seul moyen de l'arrêter est de cliquer sur " Stop" dans le menu de l' EDITOR. Par contre, lorsqu'on met terminate à la place de end dans le sous-programme " quitter", ton programme s'arrête VRAIMENT lorsqu'on clique sur le bouton. La seule fonction du end est de stopper le programme principal pour qu'il se mette en attente d'événement. Un end n'a rien à faire dans un sous-programme. J'ai fait un exécutable et je ne constate aucun problème. J'ai utilisé la dernière version de l'EDITOR (la V 0.9.11b) - Code:
-
dim a$ label att,quitter
rem fenêtre principale left 0,0 width 0,800 height 0,500 top 0,0 caption 0,"Bonjour"
button 1 left 1,680 top 1,420 caption 1,"Quitter" on_click 1,quitter
att: a$=inkey$ if a$="" then goto att end
quitter: hide 0 terminate return Je suis en train de faire des tutoriels et je vais en faire un sur la différence entre end et terminate. | |
|
bibi2030
Nombre de messages : 5 Date d'inscription : 28/07/2008
| Sujet: Re: problème de fermeture en programme.exe Sam 13 Sep 2008 - 8:00 | |
| Effectivement ça marche mais j'ai toujours un message d'erreur derrière : "access violation...." Pour button j'ai fait la modification. Merci. | |
|
Contenu sponsorisé
| Sujet: Re: problème de fermeture en programme.exe | |
| |
|