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
» Logiciel de planétarium.
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
A l’intention des nouveaux et qui viennent d’un autre BASIC Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -47%
SAMSUNG T7 Shield Bleu – SSD Externe 1 To ...
Voir le deal
89.99 €

 

 A l’intention des nouveaux et qui viennent d’un autre BASIC

Aller en bas 
3 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

A l’intention des nouveaux et qui viennent d’un autre BASIC Empty
MessageSujet: A l’intention des nouveaux et qui viennent d’un autre BASIC   A l’intention des nouveaux et qui viennent d’un autre BASIC EmptyVen 1 Mai 2015 - 19:48

Tout est dans le titre.
Tout est dans le code.

Code:

rem ============================================================================
rem               Programmation événementielle
rem                      Exemple de code
rem                        Par Papydall
rem ============================================================================
rem Contrairement à la programmation séquentielle, la programmation événementielle
rem est fondée sur des événements pouvant se produire.
rem Ces événements peuvent correspondre à une action de l utilisateur :
rem un click sur un bouton, une écriture dans une zone de texte, un choix dans
rem une case d option ou une case à cocher, etc.
rem Le programme sera articulé autour de trois sections :
rem La première section déclare et initialise les constantes,les variables, etc.
rem Elle peut aussi définir les objets (FORM, BUTTON, etc.) utilisés dans le
rem programme ou bien les définir dans une procédure à part, par exemple dans
rem SUB GUI() selon l importance du programme.
rem GUI : Graphic User Interface
rem La seconde section détecte les événements.
rem La troisième section gère ces événements.
rem Les événements sont captés par le système d exploitation, sont mis en file
rem d attente ce qui signifie que les événements sont séquentialisés.
rem Ils sont ensuite pris en charge par la boucle de gestion des événements.
rem La boucle de gestion des événements prend le premier événement à traiter
rem dans la file et le traite.
rem Le traitement consiste en l exécution des procédures événement associées à
rem celui-ci si il en existe.
rem Par exemple, le déclenchement de l événement click sur un bouton quitter
rem doit terminer le programme, le choix d un élément dans un menu doit déclencher
rem certaines opérations, etc.
rem ============================================================================
rem Ce programme est un simple visualiseur d images contenues dans un dossier
rem quelconque.
rem Au 1er lancement, le programme ouvre l explorateur Window dans le répertoire
rem en cours où vous pouvez choisir une image à visualiser.
rem Si votre choix se fait dans un autre répertoire, au prochain lancement du
rem programme, c est cet autre répertoire qui sera ouvert.
rem Le code suivant est constitué de deux parties :
rem 1) Le programme principal qui contient :
rem    Une section Déclaration
rem    Une section Définition des objets et des événements
rem 2) La gestion des événements qui aiguille le programme vers les procédures
rem    adéquates. Dans cet exemple, on a deux procédures :
rem    SUB Afficher_Image()
rem    SUB Quitter_Programme()
rem ============================================================================
' Programme principal
' Déclarations  : cette section se limite à la déclaration d'un simple LABEL
' Le programme ne nécessite pas de variales globales à déclarer.
label Gestion_click
' Déclaration et Description des objets
' Fenêtre principale du programme : FORM 0
left 0, 300 : top 0, 200 : width 0, screen_x/2 : height 0, screen_y/2 + 100
color 0, 50,180,150 : caption 0, "Visualisation d'images"
' ------------------------------------------------------------------------------
' Boutton pour charger une image
button 10 : left 10, 80 : top 10, 50 : width 10, 150 : caption 10, "Charger image"
font_bold 10  : ' style "gras"
on_click 10, Gestion_click : ' On déclare l'événement sur cet objet
                             ' quand l'utilisateur clique sur ce boutton,
                             ' ça déclenche l'événement Gestion_Click
' ------------------------------------------------------------------------------
' Bouton pour quitter le programme
button 20 : left 20, width(10) +left(10) +20 : top 20, 50 : width 20, 150
font_bold 20 : caption 20, "Quitter"
on_click 20, Gestion_click : ' On déclare l'événement sur cet objet
                             ' quand l'utilisateur clique sur ce boutton,
                             ' ça déclenche l'événement Gestion_Click
' ------------------------------------------------------------------------------
' Déclaration de l'objet PICTURE
picture 30 : stretch_on 30 : ' redimensionner l'image visualisée par l'objet
                             ' PICTURE à la forme de cet objet
left 30, 50 : top 30, 100 : width 30, width(0)/2 : height 30, width(0)/2
' ------------------------------------------------------------------------------
' Déclaration de l'objet OPEN_DIALOG
open_dialog 40 : ' ouvrir la boîte de dialogue  pour choisir un nom de fichier
filter 40,"Fichiers images | *.bmp ; *.jpg"  : ' filtrer les types de fichier à afficher
' ------------------------------------------------------------------------------
end : ' Fin du programme principal
' Cette commande est indispensable ici. Elle a pour rôle d'arrêter le programme
' pour l'empêcher d'aller plus loin.
' Cependant, le programme reste actif et continue à traiter et à répondre aux
' événements définis
rem ============================================================================

' Gestion des événements
Gestion_click:

  select number_click  : ' Déterminer l'objet cliqué
     case 10  : Afficher_Image()   : ' On a cliqué sur l'objet 10 qui est
                                     ' le bouton Charger_Image, on se branche
                                     ' sur la procédure Afficher_Image()
                                    
     case 20 : Quitter_Programme() : ' On a cliqué sur l'objet 20 qui est
                                     ' le bouton Quitter, on se branche
                                     ' sur la procédure Quitter_Programme()
  end_select
return  : ' Terminer le sous-programme, rendre la main au programme principal
          ' et remet le programme en attente d'événement
rem ============================================================================
' Procédure pour afficher une image
SUB Afficher_Image()
    dim_local fichier$        : ' Une variable locale, elle n'est visible que dans
                                ' cette procédure et sera détruite automatiquement
                                ' à la sortie de la procédure déclenchée par END_SUB
    fichier$ = file_name$(40) : ' retourner le nom du fichier choisi par l'utilisateur
    if fichier$ <> "_"        : ' L'utilisateur a-t-il validé par 'OUVRIR' ?
       file_load 30, fichier$ : ' Si oui, on charge le fichier
                                ' si l'utilisateur a cliqué sur 'Annuler, on ne fait rien
    end_if
END_SUB
rem ============================================================================
' Procédure pour quitter le programme
SUB Quitter_Programme()
' On va être prudent et poser une question à l'utilisateur pour vérifier s'il
' veut effectivement quitter
    if message_confirmation_yes_no("Vous voulez vraiment quitter ce programme ?") = 1
' L'utilisateur a cliqué sur YES à la question posée (ou a tappé la touche <ENTER>
' qui est sélectionnée par défaut par le système), alors le programme se termine
       terminate : ' arrête définitivement l'exécution du programme et libère
                   ' la mémoire. Tous les objets sont détruits.
                   ' Le programme n'existe plus en mémoire et tout s'arrête ici
                   ' On revient à PANORAMIC EDITOR
    end_if
' Si le programme arrive jusqu'ici, c'est que l'utilisateur a cliqué sur NO à la
' question posée.
' Le traitement de la procédure est fini et on rend la main au sous-programme
' qui a déclenché cette procédure, c-à-d Gestion_Clik
END_SUB
rem ============================================================================


PS :
Vous remarquez que je nomme les objets avec des numéros croissant de 10 en 10 et non de 1 à 1.
C'est juste pour pouvoir insérer d'autres objets si besoin est, mais ça n'a aucune influence sur le déroulement du programme : une simple habitude.
Ne dit-on pas que "l'habitude est une seconde nature" ? Laughing

Bonne programmation sous PANORAMIC!

EDIT : Les vétérans et les spécialistes de PANORAMIC voudront bien donner leur avis. king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

A l’intention des nouveaux et qui viennent d’un autre BASIC Empty
MessageSujet: re   A l’intention des nouveaux et qui viennent d’un autre BASIC EmptyVen 1 Mai 2015 - 20:20

Je ne sais pas si je dois me considérer comme un vétéran...
A l’intention des nouveaux et qui viennent d’un autre BASIC MsnTrucAstuce.free.fr19
Juste une petite remarque sur ta façon de déclarer un message,
je préfere i%=message_warning_ok("mon texte") plutôt...
A l’intention des nouveaux et qui viennent d’un autre BASIC MsnTrucAstuce.free.fr282
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

A l’intention des nouveaux et qui viennent d’un autre BASIC Empty
MessageSujet: Re: A l’intention des nouveaux et qui viennent d’un autre BASIC   A l’intention des nouveaux et qui viennent d’un autre BASIC EmptyVen 1 Mai 2015 - 21:42

En tout cas bravo pour l'effort fait pour les commentaires. Ca sent le programme qui va servir pour un article ça. Enfin je suppose, mais en tout cas bravo pour la peine prise pour les explications dans le source Wink et le programme fonctionne très bien
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

A l’intention des nouveaux et qui viennent d’un autre BASIC Empty
MessageSujet: Re: A l’intention des nouveaux et qui viennent d’un autre BASIC   A l’intention des nouveaux et qui viennent d’un autre BASIC EmptyVen 1 Mai 2015 - 23:08

Merci ygeronimi.
Merci Jicehel

ygeronimi a écrit:
Juste une petite remarque sur ta façon de déclarer un message,
je préfere i%=message_warning_ok("mon texte") plutôt...

Comme tous les chemins mènent à Rome, autant prendre le sentier battu !  Laughing

Plus sérieusement, j’ai voulu montrer UNE manière de rédiger un code (très simple) en Panoramic gérant des événements.
J’ai insisté sur la structure du programme qui doit être claire et quelle partie du programme fait quoi.
De cette façon, on oublie (heureusement !) les tests et les branchements qui n’en finissent pas en rendant le code comme un treillis inextricable.

Mais ta remarque sur le message_warning est tout à fait légitime. king

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





A l’intention des nouveaux et qui viennent d’un autre BASIC Empty
MessageSujet: Re: A l’intention des nouveaux et qui viennent d’un autre BASIC   A l’intention des nouveaux et qui viennent d’un autre BASIC Empty

Revenir en haut Aller en bas
 
A l’intention des nouveaux et qui viennent d’un autre BASIC
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» jeu de des basic
» Basic.
» bavardage sur basic ;)
» Naissance de Crocodile Basic
» Langages Basic.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: