FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 quel objet choisir?

Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Dim 6 Sep 2015 - 16:53

haha , tu es formidable.
je te met un zip a ton nom dans mon webdav d'ici 15 minutes.

je veut un fond et une image par dessus avec transparence et je veut pouvoir cliquer sur cette image pour déclencher un événement.

jp

ps : je t’ai ajouté un fichier Jicehel.zip contenant tout
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: quel objet choisir?   Dim 6 Sep 2015 - 19:42

Je t'ais modifié le code vite fait.
Pour ce que tu veux, il y a des tas de façon de faire.
En supposant que tu acceptes le clic sur le carré correspondant à l'étoile, tu dois te faire une picture à la taille de ton étoile pour ne prendre en compte que le clic sur cette étoile.
Après tu aurais d'autre moyen comme faire comme tu as fait, la détection sur l'image de fond et testé la couleur du pixel qui s'y trouve, tu pourrais alors dire que l'utilisateur à cliqué sur l'étoile si le pixel correspondant au clic est de couleur jaune.

Voici le programme modifié pour la détection du clic dans le carré encadrant l'image par la détection de clic. Encore une fois, il y a des tas d'autres moyens d'obtenir la même chose, comme détecté la position du clic et voir s'il est dans le carré encadrant cette image et si tel est le cas, tu peux faire un test de couleur si tu ne veut que les clics exactement sur cette étoile jaune.

Le source est:
Code:
' Démo_superposition_images.bas

dim res%

label clic, clic_100, fin : ' on crée une marque (un "label" en anglais)

' Modification de la forme principale
width 0,1024 : height 0,750 : hide 0

' Création du picture visible
picture 100 : top 100,10 : left 100,10
width 100,900 : height 100,544 : hide 100

' Création de l'image cliquable
picture 102 : width 102,100 : height 102,100: top 102, 120 : left 102, 50


' création d'un picture pour les incrustations
picture 101 : hide 101 : width 101,100 : height 101,100

KGF_initialize("KGF.dll")

' --------------------------------------------
' on charge l'image de fond
' --------------------------------------------
'
  file_load 100,"Fond2.bmp"
' on la place dans le presse-papier
  clipboard_copy 100
' on charge cette image dans l'image interne
  LoadPicture()

' --------------------------------------------------
' on charge l'image de la bande 1 à incruster dessus
' --------------------------------------------------
' on charge une image à incruster dansl'image de fond
  file_load 101,"etoile.bmp"
' on la place dans le presse-papier
  clipboard_copy 101
' incuster cette image dans l'image de fond
' elle sera placée à partir de (0,106) de l'image de fond
' ==== res% = dll_call6("ModifyPicture",x%,y%,T%,R%,G%,B%)
' avec un taux de transparence de 50% (0%: invisible et 100% = opaque)
' et la couleur noire (0,0,0) est considérée comme transparente
  ModifyPicture(0,0,100,0,0,0)  : ' On place l'image
' récupérer l'image interne vers le presse-papier
  savePicture()
' et copier le résultat dans le picture d'affichage:
  clipboard_paste 102

show 0 : show 100 : show 102 : on_close 0,fin
on_click 102,clic : ' à chaque clic sur lobjet 1 on exécute à partir de "clique"
on_click 100,clic_100 : ' à chaque clic sur lobjet 1 on exécute à partir de "clique"


' et voilà, le tour est joué !

end

#INCLUDE "KGF_SUB.bas"


clic:
caption 0 , "on a cliqué sur etoile " : ' on affiche un texte dans le bandeau de la fenêtre
return : ' fin du sous-programme de traitement du clic sur l'étoile

clic_100:
caption 0 , "---" : ' on affiche un texte dans le bandeau de la fenêtre
return : ' fin du sous-programme de traitement du clic sur l'image

fin:
res% = dll_call1("KillProcessByHandle",handle(0))
dll_off

Si ça ne correspond pas exactement à ce que tu veux, c'est que j'ai mal compris, mais n'hésites pas à demander et je corrigerais.



Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 7 Sep 2015 - 8:48

merci, ça marche bien !!!

un peu dommage d'avoir a gérer 2 images pour 1 click, mais bon , ça marche.

je vais pouvoir m'amuser maintenant...

jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: quel objet choisir?   Lun 7 Sep 2015 - 9:00

Tu peux ne pas faire d'objet et géré le clic sur l'image de fond comme tu as fait dans ton programme
Dans ce cas là, par contre, tu dois géré les coordonnées de la souris au moment du clic et faire une test de collision entre ce point et le rectangle AABB encadrant ton étoile (tu peux regarder le tuto n°1 sur les collision pour avoir la procédure toute faite). C'est vraiment un choix d'organisation de ton programme.
En tout cas, tu peux t'amuser Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 11:42

bon , je suis un peu Embarassed Embarassed Embarassed

mais ce code si simple  ne fonctionne pas, c’est a dire que le fond de l’étoile n'est pas transparent.

je ne comprends pas pourquoi.

le code est dans "jp hog.rar" sur mon webdav.

mille merci flower
jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Klaus

avatar

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

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 16:11

Petite réflexion sur la transparence sous Windows:
Sous Windows, seule une fenêtre sans parent peut avoir une gestion de transparence par canal alpha. Une fenêtre sans parent est une fenêtre non modale, appartenant directement au bureau et non à une application.
Or, toutes les fenêtres que tu peux créer en Panoramic, sont des fenêtres "filles" de la form 0 qui est leur parent. Donc, aucune gestion de transparence pour ces fenêtres.
Mais ça va plus loin. Presque tous les objets visibles sous Windows sont réalisés sous forme de fenêtre Windows, dont le parent est un des objets de la fenêtre principale de l'application. Automatiquement, tu ne peux en aucun cas avoir une transparence quelconque pour un objet visible de Panoramic, que ce soit picture, memo, button etc.
Maintenant, comme toujours, il y a des moyens de contourner, ou de réduire, les contraintes imposées par Windows. Et c'est la notion de région. Chaque fenêtre Windows (et donc chaque objet visible) est affichée dans une zone à l'écran nommée région. Initialement, et par défaut, cette zone est rectangulaire et est identique aux dimensions extérieures de l'objet. Mais on peut manipuler une région. On peut lui donner n'importe quelle forme: coins arronis, ovale, polygone, un ensemble de formes irrégulières non contigues etc. Le tout est de définir correctement la région et de l'imposer à l'objet vise. Il y a une série de fonctions dans KGF.dll qui font exactement cela.
Si par exemple tu veux afficher une étoile par-dessus une image ou une fenêtre quelconque, tu procèdes ainsi:
1. tu crées une form de la taille approximative de ton étoile (ou tout autre objet pouvant afficher une image de fond, mais PAS un picture !).
2. tu charges l'image dans l'objet créé
3. tu crées une bitmap en pixels noirs et blans uniquement, pour "masquer" l'étoile.
4. tu crées une région correspondant aux pixels masquant l'étoile
5. tu imposes cette région à l'objet affichant l'étoilre
Et comme par magie, ton étoile apparaît sans le fond, comme si le fond était réellement transparent ! Mieux: si un objet Panoramic est partiellement caché par l'étoile, tu peux quand-même cliquer sur l'objet, à travers de ce qui devrait être le fond de l'image. Le fond n'existe plus, tout simplement.
Par contre, il est impossible, même avec une région, d'imposer un dégré de transparence à l'étoile, comme si elle était translucide. Rappelle-toi: ceci n'est possible que pour les fenêtres sans parent, ce qui n'est pas le cas ici.

Voilà. Tu vois qu'il s'agit de considérations générales de Windows, et c'est totalement indépendant de Panoramic. Le seul moyen d'aller plus loin dans ce domaine, ce serait de créer une fenêtre sans parent directement à partir d'une API de Windows (CreateWindow ou CreateWindow Ex), de manipuler la région de cette fenêtre (facile, puisqu'on aura le handle) et ensuite de lui imposer la valeur choisie entre 0 et 255 du canal alpha.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 17:04

wow, merci, Klaus, de cette réponse longue et détaillée.

donc en imaginant que je veuille faire un petit jeu avec 10 objet caché , je devrai avoir 11 form ?

jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Klaus

avatar

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

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 17:12

A priori oui. Mais, qu'est-ce que tu appelles "caché" ? La commande HIDE ne fait pas ce que tu veux pour cacher un objet ? Et, en lisant bien mpon post ci-dessus, tu verras qu'un objet Panoramic FORM ne fait pas l'affaire si tu parles de transparence, car c'est un objet avec parent...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 17:56

pardon, je voulais dire que je voulais essayer de faire un jeu d'objet caché.

comme ici  : https://www.youtube.com/watch?v=lYFnQrEu4Qw

ou tu dois chercher les objets énoncés en bas  dans l'image centrale.

jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Klaus

avatar

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

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 19:21

Alors, tu peux procéder autrement, à l'aide de KGF.dll !

J'imagine que tu as une image de fon qui est fixe. Tu veux y incruster un objet contenu dans une image. cette image a un fond de couleur unie, distincr des couleurs utilisées dans la partie utile de l'image, comme le noir, par exemple. Et je suppose également que l'incrustation se fait de façon "fixe", de sorte à placer la petite image dans la grande, sans le fond.

Or, c'est exactement le domaine d'application des fonction de gestion d'image de KGF.dll. Tu procédes selon les étapes suivantes:
1. tu charges la grande image dans un picture Panoramic, par la commande FILE_LOAD
2. tu copies cette image dans le presse-papier, par la commande CLIPBOARD_COPY
3. tu charges KGF.dll, si ce n'est pas déjà fait, par la commande DLL_ON
4. tu charges le presse-papier dans l'image interne de la DLL, par la fonction LoadPicture
5. tu passes le traitement des images en mode "immédiat", par la fonction SetImmediateMode
6. tu charges l'image à incruster dans un picture Panoramic par la commande FILE_LOAD
7. tu copies cette image dans le presse-papier, par la commande CLIPBOARD_COPY
8. tu incrustes le contenu du presse-papier dans l'image interne par la fonction ModifyPicture
9. tu récupères l'image interne résultante du presse-papier dans un picture Panoramic par la commande CLIPBOARD_PASTE
10. et tu utilises l'image récupérée à ta guise.

Ton motif est incrusté, absolument sans son fond. Et pour savoir si l'objet a été cliqué, tu exploites des coordonnées retournées par les fonctions MOUSE_X_LEFT_DOWN et MOUSE_Y_LEFT_DOWN, sur la grande image.

Voilà, j'espère avoir apporté d'autres éléments de réflexion.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: quel objet choisir?   

Revenir en haut Aller en bas
 
quel objet choisir?
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Quel GPS choisir ?
» Quel GPS choisir?
» Quel Garmin choisir ?
» Quel Watercooling choisir??
» Quel Gps choisir pour une caravane.

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: