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
» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 0:29

» track_bar circulaire
par Klaus Hier à 21:41

» Gestionnaire de Projets Panoramic
par Jean Claude Hier à 20:41

» Mah-Jong européen new-look
par Jean Claude Hier à 20:34

» Gestion de l'Unicode
par jean_debord Hier à 11:21

» Button_picture
par pascal10000 Jeu 14 Déc 2017 - 11:41

» Pourquoi le compilateur stagne
par Minibug Jeu 14 Déc 2017 - 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Jeu 14 Déc 2017 - 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Jeu 14 Déc 2017 - 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Jeu 14 Déc 2017 - 10:00

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 quel objet choisir?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
jpcr

avatar

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

MessageSujet: Re: quel objet choisir?   Dim 6 Sep 2015 - 17: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 : 5865
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: quel objet choisir?   Dim 6 Sep 2015 - 20: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 : 50
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 7 Sep 2015 - 9: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 : 5865
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: quel objet choisir?   Lun 7 Sep 2015 - 10: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 : 50
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 12: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 : 10262
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 17: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 En ligne
jpcr

avatar

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

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 18: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 : 10262
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 18: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 En ligne
jpcr

avatar

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

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 18: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 : 10262
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: quel objet choisir?   Lun 28 Sep 2015 - 20: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 En ligne
Contenu sponsorisé




MessageSujet: Re: quel objet choisir?   

Revenir en haut Aller en bas
 
quel objet choisir?
Voir le sujet précédent Voir le sujet suivant 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??
» Savoir sur quel objet un évènement a eu lieu

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: