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
» Form(résolu)
Ma modeste contribution Emptypar leclode Aujourd'hui à 17:59

» trop de fichiers en cours
Ma modeste contribution Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
Ma modeste contribution Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Ma modeste contribution Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Ma modeste contribution Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Ma modeste contribution Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Ma modeste contribution Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Ma modeste contribution Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Ma modeste contribution Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Ma modeste contribution Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Ma modeste contribution Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Ma modeste contribution Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Ma modeste contribution Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Ma modeste contribution Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Ma modeste contribution Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 Ma modeste contribution

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


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

Ma modeste contribution Empty
MessageSujet: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 1:40

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 Windows

Windows 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
' ******************************************************************************

REMARQUE

J’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+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 9:42

Très bel exposé, Papydall ! Limpide pour des nouveaux-venus pour s'initier !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 11:23

Bravo Papydall, bon boulot.

Juste une remarque concernant le mot message . Ce que tu dis à propos des messages de Windows est vrai, mais pour ne pas confondre les messages (mots-clé) de Panoramic et ceux de Windows, ne serait-il pas mieux d'employer le terme: information au système d'exploitation Windows.

Un début intéressant pour les débutants....

A+
Revenir en haut Aller en bas
papydall

papydall


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 11:36

Bonjour Klaus, bonjour Jean Claude, bonjour tout le monde.

Ta remarque, JC, est bien à sa place : je prends.
Puisse, ce sujet, inciter d’autres Panoramiciens à réagir et enrichir la discussion !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 12:58

Je trouve la phrase suivante ambigue: 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.)

Le terme fenêtre ne peut pas s'utiliser pour qualifier un bouton. Perso, je mettrais plutôt un truc du genre:

Le terme fenêtre est employé pour parler d'une partie rectangulaire de l'écran d'un ordinateur à l'intérieur de laquelle sont affichées les informations relatives à une activité déterminée.
Plusieurs fenêtres peuvent êtres ouvertes simultanément ; elles peuvent être juxtaposées ou se recouvrir totalement ou partiellement.
Des objets (boutons, barres de défilement, contrôles, etc...) sont ratachés à cette fenêtre (ils suivent les mouvements de la fenêtre par exemple et cachés quand cette fenêtre n'est pas visible)





Dernière édition par Jicehel le Ven 14 Déc 2012 - 13:51, édité 1 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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 13:16

Je suis d'accord avec la remarque de Jicehel, ensuite je ne vois rien d'autre qui prête à confusion...

A+
Revenir en haut Aller en bas
papydall

papydall


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 13:27

C’est bien !
J’ai réussi à remuer quelque chose.
Ça ne peut en sortir que de l’utile !
Et on en profite, tous.
Merci pour la peine (plutôt le plaisir) de réagir ! Ma modeste contribution Yahoo-supercontent
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 13:48

Il y a une confusion sur certains termes. Je vais essayer de clarifier leur signification.

Messages
Pour Panoramic, c'est une commande qui affiche un texte et demande une confirmation par un clic sur un bouton.
Pour Windows, c'est un ensemble de données qui est envoyé entre programmes, ou entre un programme et Windows, afin d'avertir le destinataire d'un évènement, en donnant les détails nécessaires. Les messages sont placées dans des files d'attente pour en éviter la perte. Lorsqu'un programme "traite" un message, cela est considéré comme un "évènement" qui interrompt le cours normal du programme et exécute une routine évènement.

Fenêtres
Pour Panoramic, ce mot désigne ce qu'on conçoit habituellement comme fenêtre et qui est connu de Panoramic sous le nom de FORM.
Pour Windows, ce mot désigne un certain type de "contrôles", et ce qu'on imagine comme fenêtre n'est qu'un cas particulier des contrôles. Les fenêtres de Windows sont les contrôles créés par l'API CreateWindow ou CreateWindowEx. Ces contrôles sont nommées "fenêtrées" et sont tous traités de la même manière par Windows, en tant que fenêtre. Leur signe de reconnaissance, c'est qu'il ont tous un HANDLE qui est l'identifiant de toute fenêtre pour Windows. Seuls certains contrôles rares ne sont pas fenêtrés comme ce qui correspond en Panoramic au ALPHA et PICTURE. Mais tout le reste, ce sont des fenêtres dans le sens de Windows. Un bouton par exemple est une fenêtre pour Windows. Il a un parent - c'est le contrôle dans lequel il se trouve. Cela peut être une fenêtre dans le sens FORM de Panoramic, ou un container (panel pour Windows), et cela peut même être un autre contrôle fenêtré comme un StringGrid (GRID pou Panoramic ! Oui, on peut avoir des boutons DANS une grille ! Un contrôle qui n'a pas de parent, est considéré avoir le bureau comme parent (le handle est zéro).

Donc, dans l'exposé de Papydall, les termes "message" et "fenêtre" sont utilisés là où il faut, mais le contexte n'a pas été clairement précisé. Il faut faire attention à ces termes quand on rentre dans ce genre de sujets, car une fausse base d'information au départ va bloquer toute compréhension par la suite !

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 13:54

Merci Klaus et là, je pense que je ne suis pas le seul à avoir apris quelque chose Wink
Revenir en haut Aller en bas
papydall

papydall


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 13:58

WAOU!.Ma modeste contribution Merci-flammes
Klaus sait expliquer les choses mieux que moi!Ma modeste contribution Cartonne
Et j'en suis RAVI !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 14:04

Oui Klaus, je suis d'accord

Mais si l'on doit transformer le texte de Papydall en Tuto à l'attention de "débutants" en Panoramic, il vaut mieux utiliser le mot Objet pour les "fenêtres Windows" de Panoramic.

Allez Papydall, pond-nous un nouveau texte pour Noël santa (il n'y a pas grand chose à reprendre). Very Happy cheers

A+

On viens de se croiser Papydall. Allez au boulot.
Revenir en haut Aller en bas
papydall

papydall


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

Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution EmptyVen 14 Déc 2012 - 14:33

Arrivé à ce point, qui prétend n’a pas avoir appris quelque chose ?
Aussi bien les débutants que les confirmés !
Vive le Forum ! Vive PANORAMIC !

Merci klaus, Jean Claude, Jicehel et les autres!
J'apprends plein de choses de vous tous.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Ma modeste contribution Empty
MessageSujet: Re: Ma modeste contribution   Ma modeste contribution Empty

Revenir en haut Aller en bas
 
Ma modeste contribution
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calcul de PI à l'aide des formules de développement en série
» Petite mise à contribution...
» Nouvelle contribution de Ygeronimi: tri fichier CSV par date
» Nouvelle contribution: calcul de distance de freinage

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: