Salut tout le monde.
Ceux qui ont déjà programmé sous le système d’exploitation DOS, dans un quelconque langage de programmation (particulièrement BASIC) et qui viennent à PANORAMIC, éprouvent quelques difficultés pour s’adapter au système Windows.
En effet, l’opération de la programmation peut être schématisée ainsi :
On dispose de données en
entrée ; on les soumet à un
programme de traitement et on espère récupérer un (ou des) résultat(s) en
sortie. Sous DOS qui est un système d’exploitation
mono tâche , tout se passait en général sur l’écran de l’ordinateur dans une unique « fenêtre ».
Or Windows est un système d’exploitation
multitâche . Il offre beaucoup plus de possibilités que DOS.
En PANORAMIC, il est toujours possible de programmer comme « à l’ancienne » en ignorant ces objets (obscurs ?) tels que
FORM, BUTTON, COMBO, ALPHA, etc. Mais on perd énormément d’élégance et de souplesse de programmation.
Pour pouvoir programmer en PANORAMIC, il est important de comprendre comment Windows fonctionne.
Windows (ou Fenêtres) Windows, contrairement au DOS, est un système d'exploitation multitâche. C’est- à-dire un système qui permet de gérer plusieurs applications en même temps. Quand une application est lancée, un processus est créé. Chaque processus possède son propre espace d'adresse virtuel et ignore complètement celui des autres processus. Ceci est rendu possible par des méthodes de protection de la mémoire. Tout ce beau monde est géré par Windows.
Il s’agit d’abord de la gestion des fenêtres. Le terme fenêtre recouvre la fenêtre principale d'une application mais aussi n'importe quel objet (bouton, barre de défilement, contrôle etc.)
Les messages WindowsWindows est basé sur le concept d'un système contrôlé par
événements. Cela signifie que les applications réagissent à des événements provoqués soit par l'utilisateur, soit par des applications, soit encore par le systeme d'exploitation. Windows génère un message pour chaque événement (déplacement de la souris, appui sur une touche....) et s'occupe de diriger ces messages vers les applications concernées. La gestion des messages est un point important puisqu'ils vous permettent de déclencher une action à un moment précis par la réception d'un de ces messages.
Les messages événementiels ne sont pas directement transmis à une application. Ils arrivent d'abord dans une zone mémoire appelé
Buffer ou tampon qui est totalement gérée par Windows. Le rôle des applications est juste de venir consulter ce Buffer pour y récupérer les messages qui les intéressent. Ceci se fait par une boucle sans fin appelé Boucle des messages.
Les messages sont stockés dans cette zone tampon par ordre de leur
déclenchement chronologique . Ils y restent jusqu'à ce qu'ils aient été traités. L'intérêt de cette zone temporaire est de stocker les messages qu'une application occupée n'est pas en mesure de traiter dans le moment où le message est envoyé et de pouvoir lui restituer dès qu'elle trouvera le temps de s'en occuper. De cette façon il n'y a aucune perte de messages et tous seront bien délivrés.
Programmer en PANORAMIC Pour visualiser le (ou les) résultat(s) produit(s) par le programme de traitement de données, PANORAMIC gère (entre autres) une fenêtre principale appelée
FORM. En fait, c’est une sorte de feuille utilisée par le système. Cette FORM est un objet système.
Tout objet qui se respecte, doit posséder certaines propriétés et notamment un
identificateur qui sert à identifier, sans ambiguïté cet objet.
L’ identificateur est un
numéro pouvant être entier ou réel supérieur à zéro.
La valeur 0 (zéro) est attribué par le système à la fenêtre principale de l’application qui est alors
FORM 0.
FORM 0 est définie implicitement par le système de sorte que vous ne pouvez pas définir d’autres objets ayant pour numéro la valeur 0.
Si vous essayez ce code
- Code:
-
FORM 0
A l’exécution, vous obtiendrez une erreur !
PANORAMIC vous autorise à exécuter un programme …. vide, ne contenant aucune instruction !
Ouvrez Panoramic_editor, cliquez sur Nouveau (la 1ere icône à gauche) et sans rien introduire dans l’éditeur exécutez ce programme (qui ne contient rien !) en cliquant sur l’icone en rouge représentant un éclair.
Vous obtenez une fenêtre vide (c’est la FORM 0 justement !). Cette fenêtre possède un titre (PANORAMIC V0.9.24i7 ou équivalent), les 3 boutons classiques à l’extrême gauche de la barre du titre et à l’extrême droite vous voyez un bouton : cliquez dessus et (miracle de WINDOWS !) un menu parfaitement opérationnel s’affiche.
Tout ça, sans que vous n’avez tapé le moindre code dans votre programme. N’est-ce pas formidable !
J’ai disais plus haut que le système définit par défaut FORM 0. Cet objet possède, en plus de son identificateur, d’autres propriétés qui, elles aussi sont définies par défaut (position, largeur, hauteur, etc.).
Par défaut, FORM 0 est définie en position 0,0 avec 320 pixels de large sur 240 pixels de haut. Toutes ces propriétés peuvent être redéfinies.
Revenons à notre programme vide de tout à l’heure et donnons un titre personnel à notre fenêtre principale qui est FORM 0.
- Code:
-
CAPTION 0, "Mon 1er programme"
Exécutez pour voir !
Essayer maintenant ceci
- Code:
-
LABEL fin : ' Définir l'endroit où débute le sous-programme
CAPTION 0,"Mon 1er programme" : ' Titre de la fenêtre principale
TOP 0,50 : ' La position verticale de la fénêtre se trouve à 50 pixels (coordonnée y)
LEFT 0,100 : ' La position horizontale de la fenêtre se trouve à 100 pixels à
' partir du bord gauche (coord X)
COLOR 0,0,0,250 : ' Couleur du fond en bleu
FONT_COLOR 0,255,255,0 : ' Couleur du texte en jaune
FONT_BOLD 0 : ' Texte en gras
PRINT_LOCATE 100,100 : ' Position de l'affichage par le prochain PRINT
PRINT "Salut tout le monde !" : ' Afficher le texte
BUTTON 1 : ' Définir un bouton identifié par le numéro 1
TOP 1,200 : left 1,200 :' position du bouton
CAPTION 1,"Terminé" : ' Texte du bouton
ON_CLICK 1,fin : ' quand on clique sur l'objet 1 (qui est un bouton),
' on se branche au sous-programme fin
END : ' Fin du programme. Cette instruction est INDISPENSABLE.
' Elle permet d'éviter que le programme aille exécuter
' le sous-programme
' ******************************************************************************
' Sous-programme qui sera exécuté quand l'utilisateur cliquera sur le bouton TERMINE
fin:
CLS : ' Effacer l'écran
PRINT "Au revoir !" : ' Afficher ce texte en haut et à gauche de la fénêtre principale
HIDE 1 : ' Cacher l'objet dont le numéro est 1, c.a.d le bouton
return : ' Fin du sous-programme
' ******************************************************************************
REMARQUEJ’ai disais que l’identificateur d’un objet est un nombre entier ou réel.
Bien qu’il soit
tout à fait correct d’identifier un objet par un nombre réel, je pense (et c’est mon strict avis personnel) qu’il n’est pas recommandé d’en user !
Ce code est correct
- Code:
-
form 1.1001 : top 1.1001 , 50 : left 1.1001, 50
form 2.6 : top 2.6, 200 : left 2.6, 100
Mais personnellement, je ne l’utilise pas ainsi !
@Tous
Si vous pouvez et voulez écrire des petits tutoriaux avec des exemples simples,
ALLEZ-Y car ça sera bénéfique pour tous !
Les nouveaux venus et d’autres encore (qui viendront sûrement) pourront participer davantage. Conséquences : la communauté panoramicienne s’agrandira et PANORAMIC ira mieux !
A+