FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Concours de Morpions
par jjn4 Aujourd'hui à 15:08

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:58

» Comment changer le graphisme d’un menu
par Yannick Aujourd'hui à 14:53

» Synedit Parameters
par Yannick Aujourd'hui à 13:49

» LIBRARY COMMAND FUNCTION
par Jean Claude Aujourd'hui à 13:38

» OBJECT_PARENT NE FONCTIONNE PLUS ?! (RESOLU)
par Jack Aujourd'hui à 12:40

» Bienvenue à Irikte
par Irikte Aujourd'hui à 12:34

» Menu personalisé avec icones et menu contextuel
par Yannick Aujourd'hui à 12:10

» Doublon - Désolé !
par Laurent (Minibug) Aujourd'hui à 11:55

» Mac OS X sierra
par Irikte Aujourd'hui à 10:01

» Un bug avec USER_EVENT ?
par Jean Claude Hier à 21:04

» Recherche de traductions de mots (@Klaus).
par Pedro Alvarez Hier à 20:34

» Problème avec SendStringAsText.
par Pedro Alvarez Hier à 20:32

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 18:19

» Mais qui a le focus ?
par Jack Hier à 16:35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Le rôle de l'instruction END

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jack
Admin
avatar

Nombre de messages : 1693
Date d'inscription : 28/05/2007

MessageSujet: Le rôle de l'instruction END   Mar 7 Fév 2012 - 9:29

Contrairement à une idée répandue sur ce forum, l'instruction END ne joue aucun rôle dans la gestion des événements.

L'instruction END n'existe que pour empêcher l'exécution de continuer en séquence et d'aller exécuter le traitement d'un événement dans le cas où on met un traitement des événements après le programme principal.

PANORAMIC est un langage Basic et lors du lancement, l'exécution commence à la première ligne du source. C'est pourquoi il est commode de commencer un programme en définissant l'environnement par la création des objets, leurs positions, leurs dimensions, leurs caractéristiques et à quels événements ils devront réagir. Dans ce cas, on a un programme "principal", qui débute à la première ligne du source. Or, quand tout l'environnement a été décrit, il faut pouvoir arrêter ce programme principal pour qu'il n'aille pas éxécuter du code réservé aux traitement des événements.
C'est à cela que sert le END et uniquement à cela: séparer le programme principal du reste.

Si on regarde le schéma le plus utilisé pour un programme utilisant les événements, il y a besoin d'un END:
Code:
label clique:rem on définit un label
button 1:rem on définit un objet
top 1,50:left 1,100:rem on le positionne
on_click 1,clique:rem on le fait réagir à un événement clic
rem on doit arrêter le programme principal ici, sinon on va aller exécuter "clique"
rem c'est pourquoi on met END
end

rem on met ici le traitement du clic
clique:
caption 1,"clic"
return
Dans cet exemple, si on n'avait pas mis de END, l'exécution aurait continué jusqu'à l'instruction RETURN et on se retrouverait avec une erreur du type : RETURN trouvé et il n'y a pas eu de GOSUB. C'est le seul rôle du END: arrêter le programme principal pour que l'exécution n'aille pas exécuter le traitement réservé pour les événements et causer du "désordre".

Mais si on décide le mettre les traitements d'événements AVANT de définir les objets, on n'a plus besoin de END car l'exécution s'arrête naturellement à la dernière ligne du source !

Code:
label alenvers,clique
goto alenvers

rem on met ici le traitement du clic
clique:
caption 1,"clic"
return

alenvers:
button 1:rem on définit un objet
top 1,50:left 1,100:rem on le positionne
on_click 1,clique:rem on le fait réagir à un événement clic

En résumé:
- L'instruction END ne joue aucun rôle dans la gestion des événements.
- Un événement est actif dès l'instruction qui le définit: ON_CLICK, ON_CHANGE, etc...
- Cet événement reste actif après l'exécution du END.
- Après l'exécution du END, le programme principal est arrété, mais la gestion des événements continue à être active.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
 
Le rôle de l'instruction END
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Revenir aux fondamentaux à l'école primaire grace à l'instruction civique
» 'Exit Do' ne peut apparaître qu'à l'intérieur d'une instruction 'Do'.
» [Apprendre le GML] 4 - Les boucles
» comparatif AUDYA et BK7
» Instruction INSERT$() inefficace ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Tutoriels et éclaircissements-
Sauter vers: