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.
definir une zone dans une image Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
definir une zone dans une image Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
definir une zone dans une image Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
definir une zone dans une image Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
definir une zone dans une image Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
definir une zone dans une image Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
definir une zone dans une image Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
definir une zone dans une image Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
definir une zone dans une image Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
definir une zone dans une image Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
definir une zone dans une image Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
definir une zone dans une image Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
definir une zone dans une image Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
definir une zone dans une image Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
definir une zone dans une image 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

 

 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 : 12331
Age : 75
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 : 12331
Age : 75
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 : 12331
Age : 75
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
» Bizarrerie dans la zone de texte
» Tray Programme dans la zone de notification 'a cote de lhorl
» Troncature dans une image
» Déplacement 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: