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.
Un phénomène curieux Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Un phénomène curieux Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Un phénomène curieux Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Un phénomène curieux Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Un phénomène curieux Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Un phénomène curieux Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Un phénomène curieux Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Un phénomène curieux Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Un phénomène curieux Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Un phénomène curieux Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Un phénomène curieux Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Un phénomène curieux Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Un phénomène curieux Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Un phénomène curieux Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Un phénomène curieux 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 :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Un phénomène curieux

Aller en bas 
+4
bignono
exdragon
lodchjo
JL35
8 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Un phénomène curieux Empty
MessageSujet: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 15:33

Code:
WIDTH 0, 600: HEIGHT 0, 600: COLOR 0,128,255,255
2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 255,0,0: 2D_FILL_DIAGONAL_CROSS
wait 100
2D_RECTANGLE 50,5,550,540
END
Si je mets le wait 100 en commentaire, mon rectangle n'est plus dessiné (on dirait qu'il n'a pas le temps) ?
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 15:44

Effectivement, très étrange!
J'ai aussi vu que parfois des instructions étaient "oubliés" ou plutot: "dépassés". C'est pour ça que pour certains logiciels, j'avais changé l'ordre des objets et alors ça marchait. Sans doute pour la même raison que tu as observé: 'pas le temps'.
Heureusement, avec seulement
wait 1
ça marche aussi a nouveau, donc ton programme ne sera pas trop rallenti!
Wink
Revenir en haut Aller en bas
http://lode.weebly.com
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 15:59

si ça marche avec wait 1 c'est tout aussi bizarre^^
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 16:04

Il n'y a rien de bizarre là dedans. Si vous mettez la commande display à la place de wait, le rectangle est dessiné. Display, équivaut à wait 1 et permet de mettre à jour l'affichage à l'écran. Voir l'aide sur display pour plus d'info. Wink
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 16:05

J'avais constaté le même phénomène sur mon 'incollables' sans un wait 1, les pions ne s'affichaient pas ... en le mettant, ça marchait ...


Dernière édition par Jicehel le Lun 6 Fév 2012 - 16:08, édité 1 fois
Revenir en haut Aller en bas
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 16:06

ouais, fallait juste savoir que wait équivaut à display :/
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 17:04

C'est vrai que ce n'est pas très gênant, un wait 1 ou un display suffit, mais d'abord il faut le savoir, et puis c'est curieux que ça se produise avant le END, alors que la surveillance des événements n'a pas encore commencé, on en est encore à la mise en place des éléments.
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 18:35

Dans les conseils, on peut lire qu'il faut mettre DISPLAY après une coloration par exemple (Aide / conseils / paragraphe 3.3). Cette instruction a été créée uniquement pour faire une pause pendant laquelle Windows a le temps d'afficher et de colorer des choses.

Mais j'interviens pour un autre sujet que je lis très souvent dans le forum:
Citation :
c'est curieux que ça se produise avant le END, alors que la surveillance des événements n'a pas encore commencé

C'est quelque chose de récurrent. Je suis pourtant intervenu souvent sur ce sujet et le malentendu persiste.
Je vais faire une clarification dans la rubrique "Tutoriels et éclaircissements".
Voir la discussion d'Avril 2010 : https://panoramic.1fr1.net/t753-appel-d-evenement-en-dehors-du-end

L'instruction END n'a rien à voir avec la gestion des événements.
L'instruction END n'existe que pour arrêter l'exécution et 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 le 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, leur positionnement, leurs dimensions, à 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 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.

Si on prend le schéma le plus utilisé, 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 aurait 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.

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 rsumé: L'instruction END n'a rien à voir avec la gestion des événements.

Un événement est actif dès l'instruction qui le définit: ON_CLICK, ON_CHANGE, etc...
Et 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.


Dernière édition par Jack le Mar 7 Fév 2012 - 9:32, édité 2 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyLun 6 Fév 2012 - 21:08

Merci Jack pour ces éclaircissements, c'était évidemment un malentendu de ma part, je pensais qu'aucun événement n'était traité avant le End.
Bon, eh bien je n'ai plus qu'à réviser ma philosophie de Panoramic à la lumière de tes explications.
Merci en tout cas.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyMar 7 Fév 2012 - 14:40

Il n'empêche que je reste perplexe...
Si je reprends mon petit programme de là-haut:
Code:
WIDTH 0, 600: HEIGHT 0, 600: COLOR 0,128,255,255
2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 255,0,0: 2D_FILL_DIAGONAL_CROSS
2D_RECTANGLE 50,5,550,540
END
je ne vois toujours pas ce qui empêche le 2D_RECTANGLE de s'exécuter... que ça se fasse avec retard, je veux bien, parce que c'est du graphique et que c'est long à dessiner, mais ce fameux rectangle devrait finir par apparaître, le programme n'a plus rien d'autre à faire.
Mais qu'on fasse l'impasse sur une instruction sous prétexte que ça va trop vite, ça dépasse mon entendement. Dans mon idée les instructions s'exécutent en séquence, la suivante quand la précédente est exécutée.

Si je mets un stop après le 2D_RECTANGLE, je vois le rectangle apparaître fugitivement avant d'être recouvert par le fond du Form 0...
Revenir en haut Aller en bas
Klaus

Klaus


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

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyMar 7 Fév 2012 - 14:59

Et ce code marche:
Code:
WIDTH 0, 600: HEIGHT 0, 600: COLOR 0,128,255,255
2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 255,0,0: 2D_FILL_DIAGONAL_CROSS
display
2D_RECTANGLE 50,5,550,540
END
Même ceci marche:
Code:
WIDTH 0, 600: HEIGHT 0, 600
COLOR 0,128,255,255
display
2D_PEN_COLOR 0,0,0
2D_FILL_COLOR 255,0,0
2D_FILL_DIAGONAL_CROSS
2D_RECTANGLE 50,5,550,540
END

Pourquoi ? parce que le dessin se fait, au final, de façon ASYNCHRONE par une routine de service de Windows. Il s'agit de la commande COLOR. Le programme Panoramic passe à l'instruction suivante alors que la routine de service Windows n'a pas encore fini d'exécuter ce qu'elle doit faire pour ce qui a été demandé par COLOR. Donc, le résultat des commandes suivantes, et en particulier RECTANGLE, est bien affiché, mais écrasé par le traitement plus long de ce qui se déroule en arrière-plan pour satisfaire la demande de COLOR.

C'est comme si tu déposais un chèque à ta banque et tu voulais retirer l'arget tout de suite en espèces. Problème: le compte n'est pas crédité. Il faudra attendre le délai d'encaissement avant de tirer des espèces. Et c'est la commande DISPLAY qui le fait - la doc le dit clairement.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jack
Admin
Jack


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

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyMar 7 Fév 2012 - 15:49

Tout à fait.
Bien que les commandes soient traitées en séquence par des appels à des API de Windows, Windows met toutes les commandes graphiques en file d'attente et les traite en fonction de leur durée d'exécution.
Il traite les plus rapides d'abord et COLOR est une commande qui prend du temps : il va l'exécuter en dernier.
C'est pourquoi j'ai codé DISPLAY qui force Windows à exécuter la commande.

Windows fait ce qu'il veut et pas seulement dans le domaine graphique. Il arrive aussi par exemple, qu'il change des numéros de ports d'entrées-sorties !
Ce système d'exploitation monopolistique plein de rajouts et de patchs et fait sans vision d'ensemble est une catastrophe.

Dans le domaine militaire, où on a besoin de fiabilité et d'efficacité, il serait impensable d'utiliser Windows.
Toutes les applications sur lesquelles je travaille sont sous LINUX qui est d'une toute autre rigueur.
Autre chose: tous les serveurs du net y compris les serveurs de la société Microsoft tournent sous LINUX ...
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyMar 7 Fév 2012 - 17:22

Eh bien, il me paraissait logique que toutes les commandes soient traitées dans l'ordre chronologique de leur arrivée (hors interruptions), séquentiellement.
Je vois bien que ce n'est pas forcément le cas (en tout cas pour les commandes qui font appel à des fonctions windows), et je vois mieux l'utilité du Display !

J'ai travaillé autrefois sur un système temps réel (avec un os dédié), effectivement il me semble que là non plus windows n'aurait pas été très approprié !

Merci à tous les deux pour ces précisions.
Revenir en haut Aller en bas
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux EmptyMar 7 Fév 2012 - 17:31

Citation :
tous les serveurs du net y compris les serveurs de la société Microsoft tournent sous LINUX ...
Dire qu'il a inondé le monde de son windows :/

En plus, une pâle copie de GEM.
Revenir en haut Aller en bas
carpathe




Nombre de messages : 14
Age : 73
Localisation : Pres Toulouse
Date d'inscription : 28/02/2012

Un phénomène curieux Empty
MessageSujet: La redondance   Un phénomène curieux EmptyMar 28 Fév 2012 - 17:42

J'avais ce genre de probleme (saut de ligne) sur un viel Amstrad.Je corrigeais en doublant,ou triplant la ligne concernée.Ce qui,bien sur, n'est pas toujours possible de faire.
Revenir en haut Aller en bas
Contenu sponsorisé





Un phénomène curieux Empty
MessageSujet: Re: Un phénomène curieux   Un phénomène curieux Empty

Revenir en haut Aller en bas
 
Un phénomène curieux
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un phénomène curieux!
» Phénomène curieux
» phénomène curieux avec les oblets grid et memo
» FILE_FIND: Arborescence des répertoires dans un mémo
» curieux....

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: