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.
Comment faire un picture de n'importe quelle forme ? Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Comment faire un picture de n'importe quelle forme ? Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Comment faire un picture de n'importe quelle forme ? Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Comment faire un picture de n'importe quelle forme ? Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Comment faire un picture de n'importe quelle forme ? Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Comment faire un picture de n'importe quelle forme ? Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Comment faire un picture de n'importe quelle forme ? Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Comment faire un picture de n'importe quelle forme ? Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Comment faire un picture de n'importe quelle forme ? Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Comment faire un picture de n'importe quelle forme ? Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Comment faire un picture de n'importe quelle forme ? Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Comment faire un picture de n'importe quelle forme ? Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Comment faire un picture de n'importe quelle forme ? Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Comment faire un picture de n'importe quelle forme ? Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Comment faire un picture de n'importe quelle forme ? 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
-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.99 €
Voir le deal

 

 Comment faire un picture de n'importe quelle forme ?

Aller en bas 
+3
JL35
Jicehel
Klaus
7 participants
AuteurMessage
Klaus

Klaus


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 2:14

Vous avez déjà voulu faire un picture sous forme de cercle ? Pas dessiner un cercle dans un picture, mais afficher une photo un peu comme dans un médaillon, sans que le rectangle englobant le cercle n'occulte le fond qui est derrière ?

Les fonctions de gestion de fenêtres de KGF.dll permettent de faire cela ! En fait, on peut composer n'importe quelle forme, en accumulant des régions rectangulaires et/ou elliptiques, pour former une seule région qui représentera le picture. Et ces "briques" de composition n'ont même pas besoin de se toucher - elles peuvent parfaitement être disjointes...

Pour la démonstration, je fais un simple cercle, placé par-dessus un mémo, pour bien montrer l'effet visuel. Au début, le cercle s'affiche avec une couleur unié, et un bouton permet de charger n'importe quelle image BMP (photo, clip-art, ...).

Techniquement, il y a une astuce. En effet, ces fonctions ont toutes besoin d'un handle de l'objet à manipuler. Or, un objet picture de Panoramic n'a pas de handle ! Donc, je crée un objet panel (lui, il a un handle !), puis le place un picture full_space dans le panel. Et j'applique les fonctions sur le handle du panel pour obtenuir l'effet escompte:
Code:
' picture_en_forme_libre.bas

label img
dim res%, region1%, region2%, f$

memo 10 : left 10,100 : height 10,420
  font_names_load 10
 
panel 1 : top 1,50 : left 1,50 : width 1,300 : height 1,300
picture 2 : parent 2,1 : full_space 2 : color 2,255,200,200

open_dialog 3 : filter 3,"Images|*.bmp"
button 4 : caption 4,"Image" : on_click 4,img

dll_on "KGF.dll"
region2% = DLL_call5("WindowAddEllipticRegion",adr(region1%),0,0,300,300)
res% = DLL_call2("WindowRegionAsWindow",handle(1),adr(region1%))
' ici, on pourrait construire une région quelconque,
' par combinaisons de régions réctangles et/ou elliptiques
' (tête de Mickey, par exemple...), et appliquer cette région à un PANEL.
' Ainsi, le picture contenu dans le panel sera automatiquement "rogné"
' selon les limites du panel.

end

' On va charger une image dans le picture:
img:
  f$ = file_name$(3)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bmp" then f$ = f$ + ".bmp"
  if file_exists(f$)=0 then return
  file_load 2,f$
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 9:28

C'est clairement une fonction très utile. Vu la limitation par rapport aux clics sur les sprites. Ce pseudo objets permet de les remplacer assez facilement à condition d'avoir des sprites de formes assez simples (idéalement réctangulaires ou circulaires pour des raisons de simplicité)
Revenir en haut Aller en bas
JL35




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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 11:30

Ça c'est carrément génial ! ça ouvre de sacrés horizons pour de l'incrustation photo par exemple...
Je vais essayer ça illico, merci Klaus !
(dommage, j'ai du monde aujourd'hui, pas beaucoup le temps de faire joujou...)
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 11:42

Tant que la possibilité est là, après pour la mise en application, ce n'est qu'une question de temps et personne n'est pressé (enfin je crois Wink )
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 12:31

Merci klaus !

Très intéressant, il ne nous reste plus qu'a le mettre en pratique... drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 15:53

Tout ça est  beau.
J’ai voulu faire deux (voire plus) PICTUREs de forme circulaire pour y charger des images, mais ne n’y arrive pas : seul un seul PICTURE peut être vu à la fois.
Mettre en REM la ligne 15 ou 16, permet d’avoir l’une ou l’autre image dans le cercle

Spoiler:

Voici mon code:

Code:

dim res%, region1%, region2%,f$,hnd%

width 0,700 : height 0,500
panel 1    : top 1,50     : left 1,50     : width 1,300  : height 1,300
picture 2  : parent 2,1   : full_space 2  : color 2,255,200,200

panel 10   : top 10,50    : left 10,370   : width 10,300 : height 10,300
picture 20 : parent 20,10 : full_space 20 : color 20,255,200,200

f$ = "c:\users\acer\desktop"
dll_on "KGF.dll"

region2% = DLL_call5("WindowAddEllipticRegion",adr(region1%),0,0,300,300)
' Mettre en REM l'une ou l'autre de deux lignes suivantes
res% = DLL_call2("WindowRegionAsWindow",handle(1),adr(region1%))
res% = DLL_call2("WindowRegionAsWindow",handle(10),adr(region1%))

file_load 02,f$ + "Klaus.bmp"    : stretch_on 02
file_load 20,f$ + "Papydall.bmp" : stretch_on 20


Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 16:07

Et si tu utilisais des variables region3% et region4% pour la deuxième image, de sorte à avoir un jeu de variables indépendantes ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 16:19

Bonjour à tous,

@klaus
La fonction handle_canvas(n) retourne le handle de la zone graphique d'un objet système, ça ne conviendrait pas?
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 16:31

ça marche  , merci klaus

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 16:50

Trop cool !
MERCI !
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 17:09

Pour faire des pions cliquables sur une image (un damier ou un plateau de jeu par exemple), c'est très pratique Wink
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 17:24

Code:

dim res%, region1%, region2%,region3%,region4%,f$,hnd% ,i

width 0,700 : height 0,500
caption 0,"<ESC> pour terminer ... "
panel 1    : top 1,50     : left 1,50     : width 1,300  : height 1,300
picture 2  : parent 2,1   : full_space 2  : color 2,255,200,200

panel 10   : top 10,50    : left 10,370   : width 10,300 : height 10,300
picture 20 : parent 20,10 : full_space 20 : color 20,255,200,200

f$ = "c:\users\acer\desktop"+chr$(92)
dll_on "KGF.dll"

region2% = DLL_call5("WindowAddEllipticRegion",adr(region1%),0,0,300,300)
region4% = DLL_call5("WindowAddEllipticRegion",adr(region3%),0,0,300,300)

res% = DLL_call2("WindowRegionAsWindow",handle(1),adr(region1%))
res% = DLL_call2("WindowRegionAsWindow",handle(10),adr(region3%))

file_load 02,f$ + "Klaus.bmp"    : stretch_on 02 : ' A adapter ...
file_load 20,f$ + "Papydall.bmp" : stretch_on 20 : ' ... selon les cas
repeat
   for  i  = 300 to 0 step -20 : left 2,i : top 20,i :  pause 200 : next i
   for  i  = 0 to 300 step 20  : left 2,i : top 20,i :  pause 200 : next i
until scancode = 27
terminate
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 18:11

@Silverman:
Citation :
La fonction handle_canvas(n) retourne le handle de la zone graphique d'un objet système, ça ne conviendrait pas
Ce n'est pas la même chose. Pour 2 raisons:
1. le canvas d'un picture est géré par Panoramic. Si je commence à triturer le canvas de mon côté, Panoramic n'en sait rien, et au prochain réaffichage de l'image (ce qui est fréquent, sous Windows !), les modifications que j'y aurais apportées seraient perdues
2. même si je modifiais le canvas de sorte à n'afficher qu'un cercle, un ellipse ou n'importe quelle autre forme, l'objet picture en tant que tel n'est pas modifié. Il prend toujours le même espace dans le rectangle qui lui est alloué. Et en cliquant en-dehors du cercle affiché, mais à l'intérieur du rectangle du picture, le clic va au picture et non aux objets placés en-dessous. Or, dans le code que j'ai proposé, essaie de cliquer juste en-dehors du cercle, dans le mémo qui est en-dessous. Tu verras que le clic va dans le mémo - le reste du picture n'est pas devenu "transparent", il est carrément coupé !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyDim 8 Nov 2015 - 20:00

Klaus, je suis en train de bricoler avec ces fonctions très intéressantes...
Une fois le panel incrusté sur l'arrière-plan (ton exemple), on peut le déplacer sans problème en faisant varier le Top et le Left du panel, ça suit.
Mais est-il possible de faire varier dynamiquement ses dimensions ? j'ai beau changer le Width et le Height du panel, ça ne change rien...

PS j'ai trouvé une solution: il faut remettre region1%=0 pour la recréer, et là ça marche.
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? EmptyLun 9 Nov 2015 - 3:44

Bravo ! Tu as trouvé !

En fait, la fonction qui affecte la région elliptique à un objet, crée une "vue" dans l'objet, un peu comme si l'on regardait cet objet par une longue-vue. Et les dimensions de cette vue ne changent pas si tu changes les dimensions de l'objet. Il faut bel et bien refaire une autre vue si nécessaire.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Comment faire un picture de n'importe quelle forme ? Empty
MessageSujet: Re: Comment faire un picture de n'importe quelle forme ?   Comment faire un picture de n'importe quelle forme ? Empty

Revenir en haut Aller en bas
 
Comment faire un picture de n'importe quelle forme ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment savoir quelle cellule d'un grid est cliquée
» Comment faire fonctionner \qj en RTF ?
» Faire du background d'un scene2d un picture ou presque
» Comment construire un bouton avec un picture
» comment faire avec "WBSurvey"...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: