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)
definir une zone dans une image Emptypar leclode Aujourd'hui à 17:59

» trop de fichiers en cours
definir une zone dans une image Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
definir une zone dans une image Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
definir une zone dans une image Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
definir une zone dans une image Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
definir une zone dans une image Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
definir une zone dans une image Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
definir une zone dans une image Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
definir une zone dans une image Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
definir une zone dans une image Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
definir une zone dans une image Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
definir une zone dans une image Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
definir une zone dans une image Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
definir une zone dans une image Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
definir une zone dans une image 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
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 definir une zone dans une image

Aller en bas 
3 participants
AuteurMessage
FRANKI30




Nombre de messages : 28
Date d'inscription : 14/11/2010

definir une zone dans une image Empty
MessageSujet: definir une zone dans une image   definir une zone dans une image EmptyDim 21 Nov 2010 - 19:14

label b,c
picture 1
left 1,16
top 1,50
width 1,200

b:
print mouse_x_position(1)
print_locate 10,10
print mouse_y_position(1)

if mouse_x_position(1)>10 and mouse_x_position(1)<20 and mouse_left_down(1)=1
print "ok"
goto c
end_if

goto b
c:
terminate


veuillez excuser la prog a l'ancienne.
Je souhaite definir une zone dns une image.
lorsque je clique sur une zone x>10 et x<20 comme voulu ca fonctionne.
Le probleme survient lorsque je supprime mes trois lignes de print qui me servaient a titre d'info.
Revenir en haut Aller en bas
Klaus

Klaus


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

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyDim 21 Nov 2010 - 19:33

J'ai la solutioin. Le problème, c'est que si tu enlèves les print, ton programme boucle uniquement en temps CPU et n'a AUCUN moyen d'interagir avec les périphériques comme la souris. Il suffit d'introduire une seule instruction DISPLAY et ton programme marche. Cette instruction a pour effet de suspendre l'exécution de Panoramic jusqu'à ce que toutes les entrées/sorties écran soient effectuées, et cela suffit. Voici le code qui marche:
Code:
label b,c
picture 1
left 1,16
top 1,50
width 1,200

b:
' print mouse_x_position(1)
' print_locate 10,10
' print mouse_y_position(1)

if (mouse_x_position(1)>10) and (mouse_x_position(1)<20) and (mouse_left_down(1)=1)
print "ok"
goto c
end_if
display
goto b
c:
terminate


veuillez excuser la prog a l'ancienne.
Je souhaite definir une zone dns une image.
lorsque je clique sur une zone x>10 et x<20 comme voulu ca fonctionne.
Le probleme survient lorsque je supprime mes trois lignes de print qui me servaient a titre d'info.

Mais rassure-toit: tu n'es pas le seul à tomber dans ce piège !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyDim 21 Nov 2010 - 22:10

Oulaaa, j'y serais tombé aussi, je savais pas ça pour panoramic, j'a jamais rencontré ce problème sur d'autres langages, bizarre.

Franky, donne des noms explicites à tes labels si tu veux avoir des habitudes de bon programmeur.

Sinon si tu as besoin de plusieurs zones clickables sur une image je t'expliquerais sinon ta solution suffit pour une zone.

Revenir en haut Aller en bas
FRANKI30




Nombre de messages : 28
Date d'inscription : 14/11/2010

definir une zone dans une image Empty
MessageSujet: zone    definir une zone dans une image EmptyDim 21 Nov 2010 - 22:27

Ok merci klaus. Je decouvre ce language que j'aime bien et qui me rappelle beaucoup le GFA Basic avec lequel j'avais l'habitude de programmer, je m'y remet doucement car panoramic est quand même different.
En tout cas j'apprecis cette rapidité et solidarité, merci.
Revenir en haut Aller en bas
Klaus

Klaus


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

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyLun 22 Nov 2010 - 0:27

En fait, si tu reprends ton code initial, je te donne la clé pour comprendre ce qui se passe réellement.

Quand tu dis à Panoramic de créer le picture 1, il le crée avec des dimensions par défaut, et en position (0,0). Tu le déplaces ensuite en (16,50). Mais curieusement, alors que dans ta version "avec print" ce déplacement est bien pris en compte, ce n'est plus du tout le cas dès que tu mets ces 3 lignes en commentaire.

Pourquoi ? La mise à jour de l'écran, c'est-à-dire le réaffichage du picture apès déplacement prend un certain temps, certes court, mais réel. Or, ce travail est fait à une priorité nettement inférieure à tout ce qui touche l'exécution en unité centrale pure. Panoramic envoie la requête système pour le réaffichage, puis continue son traitement. Or, le traitement suivant SANS les print ne comprend plus aucune entrée/sortie et est donc hautement prioritaire sur tout le reste. Si tu avais une seule entrée/sortie dans ta boucle, même dans un fichier par exemple, tu ne te serais pas rendu compte du problème. Panoramic ne laisse tout simplement pas le temps à Windows de réafficher le picture à la nouvelle position, tout occupé qu'il est de tourner en rond dans ta boucle. Car contrairement à ce que tu peux penser, la fonction mouse_x_position n'est pas une entrée/sortie, mais retourne juste la valeur d'une propriété d'un objet windows (le picture) qui est actualisé automatiquement par windows lors du déplacement du curseur.

Pourquoi ma solution marche ? Vu les explications précédentes, c'est clair:
Citation :
la commande display gèle l'exécution du programme pendant le temps nécessaire à la mise à jour de la visualisation (l'écran). Puis, quand la visualisation est mise à jour, l'exécution du programme continue.

Voilà, il vaut mieux y penser quand on fait des boucles pour attendre.

En réalité, ce qu'il aurait fallu faire, c'est ceci:
Code:
llabel b,c
picture 1
left 1,16
top 1,50
width 1,200
timer 2
timer_interval 2,1
on_timer 2,b
timer_on 2
on_click 1,b
end

b:
' print mouse_x_position(1)
' print_locate 10,10
' print mouse_y_position(1)
timer_off 2
if mouse_x_position(1)>10 and mouse_x_position(1)<20 : ' and mouse_left_down(1)=1
print "ok"
goto c
end_if
timer_on 2
return

c:
terminate

Comme tu peux voir, le programme crée le picture avec ses attributs, et le label b est transformé en sous-programme. Le programme crée aussi un timer qui se déclenche toutes les milli-secondes. La routine b est appelée par le timer et aussi quand un clique sur le picture. Dans les deux cas, donc, si le curseur se trouve dans la zone sensible, le programme se termine. Tu peux, soit cliquer directement dans la zone sensible, soit emmener le curseur doucement dessus, et le programme se terminera automatiquement. Il n'y a plus besoin de la commande display car après l'exécution de la commande end, Panoramic est en attente d'un évènement Windows, et toutes les mises à jours de l'écran sont faites à ce moment. Et les évènements windows qui nous intéressent ici, sont, d'une part, le clic sur le picture (par on_click b), et le déclenchement du timer (par on_timer b) d'autre part.

Bel exemple de l'utilité du mode "évènement" en Panoramic !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyLun 22 Nov 2010 - 1:21

*milite contre les labels a,b* Wink
pirat
Revenir en haut Aller en bas
Klaus

Klaus


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

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyLun 22 Nov 2010 - 1:40

Bien sûr, dragonno ! Mais pour la compréhension, je voulais "coller" le plus près possible du code original et juste apporter les modifs fonctionnelles nécessaires !

Il est évident que pour la lisibilité d'un programme, il est très important d'avoir des labels et des variables dont le nom exprime leur fonction.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image EmptyLun 22 Nov 2010 - 1:53

Oui je m'étais douté que tu suivais le cheminement intellectuel du code exemple de Franki mais je voulais quand même préciser ma position Wink
Revenir en haut Aller en bas
FRANKI30




Nombre de messages : 28
Date d'inscription : 14/11/2010

definir une zone dans une image Empty
MessageSujet: zone image   definir une zone dans une image EmptyMar 23 Nov 2010 - 19:35

Bonjour klaus et merci, j'ai bien compris le fonctionnement.
En ceux qui concerne les label pour le moment je l'ai nomme de cette facon car ce sont juste des essais, j'essaye de retrouver mes vieux reflex et prendre de nouvelles marques.
En gfa Basic j'ecrivais des programmes de 8000 a 9000 lignes et la c'est sur qu'il vaut mieux tout noter mais je suis encore loin d'en arriver là. Shocked
Enfin peu être un jour en tout cas merci pour les infos.
Revenir en haut Aller en bas
Contenu sponsorisé





definir une zone dans une image Empty
MessageSujet: Re: definir une zone dans une image   definir une zone dans une image Empty

Revenir en haut Aller en bas
 
definir une zone dans une image
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Récupérer l'image d'un IMAGE dans un picture
» Déplacement dans une image
» image dans KGF Grid
» Découpe dans une image
» Découpe dans une image

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: