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
» SineCube
trou - Faire un trou complexe dans un objet FORM Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
trou - Faire un trou complexe dans un objet FORM Emptypar Marc Hier à 12:22

» Philharmusique
trou - Faire un trou complexe dans un objet FORM Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
trou - Faire un trou complexe dans un objet FORM Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
trou - Faire un trou complexe dans un objet FORM Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
trou - Faire un trou complexe dans un objet FORM Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
trou - Faire un trou complexe dans un objet FORM Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
trou - Faire un trou complexe dans un objet FORM Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
trou - Faire un trou complexe dans un objet FORM Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
trou - Faire un trou complexe dans un objet FORM Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
trou - Faire un trou complexe dans un objet FORM Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
trou - Faire un trou complexe dans un objet FORM Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
trou - Faire un trou complexe dans un objet FORM Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
trou - Faire un trou complexe dans un objet FORM Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
trou - Faire un trou complexe dans un objet FORM Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

 

 Faire un trou complexe dans un objet FORM

Aller en bas 
+2
Marc
papydall
6 participants
AuteurMessage
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 0:45

Je sais que KGF.DLL de Klaus permet de trouer un FORM.
Ce que je ne le savais pas c’est quelles API utiliser pour faire la même chose (ou presque) en Panoramic.
Je suis tombé par hasard sur un bout de code en Delphi qui traite des régions sous Delphi.
Quelques petites recherches encore et une première tentative et ça donne ça !
Je suis content comme un gosse qui a reçu un bon bonbon !

Code:

rem ============================================================================
rem           Faire un trou complexe dans un objet FORM
rem ============================================================================
dim hWnd%,r1%,r2%,r3%,w%,h%,ret% ,i
dim RGN_XOR : RGN_XOR = 3
dim RGN_OR  : RGN_OR  = 2
width 0,400 : height 0,400 : top 0,(screen_y - height(0))/2 : color 0,200,100,50
w% = width(0) : h% = height(0)
hWnd% = handle(0)
caption 0,"Trou complexe dans FORM"

dll_on "gdi32"

r1%  = dll_call4("CreateRectRgn",0,0,w%,h%) : ' R1 englobe toute la form

r3%  = dll_call4("CreateEllipticRgn",81,81,81+75,81+81) : ' Le premier oeil
ret% = dll_call4("CombineRgn",R1%,R1%,R3%,RGN_XOR) : ' Soustraction du premier oeil de R1

R3%  = dll_call4("CreateEllipticRgn",229,81,229+75,81+81) : ' Le deuxieme oeil
ret% = dll_call4("CombineRgn",R1%,R1%,R3%,RGN_XOR) : ' Soustraction du deuxième oeil de R1

R3%  = dll_call4("CreateEllipticRgn",94, 194, 195+94, 133+194) : ' Une ellipse pour la bouche
ret% = dll_call4("CombineRgn",R1%, R1%, R3%,RGN_XOR) : ' Soustraction de l'ellipse de R1

 R3%  = dll_call4("CreateEllipticRgn",87,191, 87+213, 191+90) : '  Une ellipse à soustraire de la bouche
 ret% = dll_call4("CombineRgn",R1%, R1%, R3%,RGN_OR) : ' Ajout de l'ellipse à R1

R2%  = dll_call4("CreateEllipticRgn",25,38,25+333,38+311): ' La tête
ret% = dll_call4("CombineRgn",R1%, R1%, R2%,RGN_XOR) : ' Creuse toute la tête sauf les régions ajoutées précédemment
dll_off
dll_on "user32"

ret% = dll_call3("SetWindowRgn",hWnd%, R1%, 0) : ' Applique le tout à la form
dll_off
for i = screen_x to 10 step -2  : left 0,i : pause 1 : next i
rem ============================================================================


Dernière édition par papydall le Mar 26 Avr 2016 - 1:08, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 0:59

Très original !
Avec un exemple très PRO et, comme d'habitude, un source très bien détaillé.

Merci Papydall pour ton emporte-pièce numérique !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: re   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 1:08

C' est assez original. Wink
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 1:09

Merci Marc37.
Merci Ygeronimi
Tout le plaisir est pour moi.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 1:32

Puisque vous avez apprécié, voici un autre code.

Code:

rem ============================================================================
rem  Pour fermer la fenêtre cliquer sur le coin haut droit,
rem  puis Fermer ou <ALT> + F4
rem ============================================================================
dim ret%, hWnd%
dim h1%,h2%,h3%
dim RGN_XOR : RGN_XOR = 3
dim RGN_OR  : RGN_OR  = 2
top 0,300 : left 0,500 : color 0,0,255,255
hWnd% = handle(0)
dll_on "gdi32"

h1% = dll_call4("CreateEllipticRgn",0-20,0-20,100,100)
h2% = dll_call4("CreateEllipticRgn",090,000,190,100)
h3% = dll_call4("CreateEllipticRgn",180,000,280,100)

ret% = dll_call4("CombineRgn",h1%,h1%,h2%,RGN_OR)
ret% = dll_call4("CombineRgn",h1%,h1%,h3%,RGN_OR)

dll_off
dll_on "user32"
ret% = dll_call3("SetWindowRgn",hWnd%, h1%, 0)
rem ============================================================================

Faites vos tests! king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 8:03

Belle trouvaille Papydall !

Je met de coté, ça peut servir..... (j'imagine un glouton qui dévore la fenêtre Very Happy )

A+
Revenir en haut Aller en bas
JL35




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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 16:00

C'est vrai que c'est sympa tout ça, des trous complexes elliptiques qui se baladent sur l'écran.

A partir de là, j'essaie de faire un trou tout simple et fixe, rectangulaire, dans un Form fixe, pour qu'on voie à travers, mais je n'y arrive pas... Embarassed

PS ça y est, ça commence à venir:
Code:
rem ============================================================================
rem           Faire un trou complexe dans un objet FORM
rem ============================================================================
dim hWnd%,r1%,r2%,r3%,w%,h%,ret% ,i
dim x%,y%,
dim RGN_XOR : RGN_XOR = 3
dim RGN_OR  : RGN_OR  = 2
dim w0%,h0%
w0% = 600: h0% = 600
width 0,w0% : height 0,h0% : top 0,100 : LEFT 0,50: color 0,200,100,50
border_small 0
w% = w0% : h% = h0%
hWnd% = handle(0)
caption 0,"Trou complexe dans FORM"

dll_on "gdi32"
r1%  = dll_call4("CreateRectRgn",0,0,w%,h%) : ' R1 englobe toute la form
x% = 20: y% = 40: w% = w0%-50: h% = h0%-60
r3%  = dll_call4("CreateRectRgn",x%,y%,x%+w%,y%+h%) : ' Le premier oeil
ret% = dll_call4("CombineRgn",r1%,r1%,r3%,RGN_XOR) : ' Soustraction du premier oeil de R1
dll_off
dll_on "user32"
ret% = dll_call3("SetWindowRgn",hWnd%, r1%, 0) : ' Applique le tout à la form
dll_off
rem ============================================================================
C'est un peu aléatoire quand même, j'ai l'impression d'avoir une ressource pas ou mal libérée.
En fait, le code ci-dessus est très empirique par rapport à ton code papydall, je n'ai pas tout compris...
Revenir en haut Aller en bas
Jicehel

Jicehel


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMar 26 Avr 2016 - 19:37

Attention Papydall, si tu continues comme ça tu finiras dans quelques temps par obtenir un niveau Klaussien Very Happy
Bon sérieusement, bien trouvé, programmé et documenté. Tu es vraiment le parfait exemple du contributeur "idéal" de ce forum et non je n'ai aucune idée de la prochaine pépite que tu vas nous dénicher.
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 6:48

Code:

rem ============================================================================
rem        FORM circulaire
rem ============================================================================
dim hWnd%,ret%,w%,h%, cercle%,carre%
' Constantes
dim RGN_AND  : RGN_AND  = 1
dim RGN_OR   : RGN_OR   = 2
dim RGN_XOR  : RGN_XOR  = 3
dim RGN_DIFF : RGN_DIFF = 4
dim RGN_COPY : RGN_COPY = 5

label clic
width 0,400 : height 0,400 : top 0,(screen_y - height(0))/2 : color 0,200,100,50
w% = width(0) : h% = height(0)
hWnd% = handle(0)
 caption 0,string$(30," ") + "Cliquer et déplacer ce FORM"
2d_fill_on : 2d_fill_color 255,0,0 : 2d_pen_width 2

2d_circle 200,200,100
button 10 : top 10,180 : left 10,160 : caption 10,"Quitter" : on_click 10,clic
dll_on "gdi32"
' on definit une region ellipse de même coordonnées que le cercle
cercle% = dll_call4("CreateEllipticRgn",0, 0, w%, h%)
' on definit un carré
carre%  = dll_call4("CreateRectRgn",150, 50, 220, 120)
' on définit une region combinant le cercle et le carré
ret% = dll_call4("CombineRgn",carre%,cercle%,carre%,RGN_DIFF)
dll_off
dll_on "user32"
' on affecte cette region à la form
ret% = dll_call3("SetWindowRgn",hWnd%, carre%, 0)
 dll_off
 dll_on "gdi32"
' on supprime la region cercle, la transformation est faite. On en a plus besoin
ret% = dll_call1("DeleteObject",cercle%)

end
rem ============================================================================
clic:
    dll_off
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd%,16,0,0) : ' 16 c'est la constante de fermeture
return

rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 8:10

Papydall, sans les bords c'est plus sympa Very Happy

Code:
rem ============================================================================
rem        FORM circulaire
rem ============================================================================
dim hWnd%,ret%,w%,h%, cercle%,carre%
' Constantes
dim RGN_AND  : RGN_AND  = 1
dim RGN_OR  : RGN_OR  = 2
dim RGN_XOR  : RGN_XOR  = 3
dim RGN_DIFF : RGN_DIFF = 4
dim RGN_COPY : RGN_COPY = 5

label clic,DepDroite,DepGauche
border_hide 0
width 0,400 : height 0,400 : top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 : color 0,200,100,50
w% = width(0) : h% = height(0)
hWnd% = handle(0)
' caption 0,string$(30," ") + "Cliquer et déplacer ce FORM"
2d_fill_on : 2d_fill_color 255,0,0 : 2d_pen_width 2
2d_circle 200,200,100

button 10 : top 10,180 : left 10,160 : caption 10,"Quitter" : on_click 10,clic
button 11 : width 11,20 : height 11,20 : top 11,50 : left 11,250 : caption 11,">" : on_click 11,DepDroite
button 12 : width 12,20 : height 12,20 : top 12,50 : left 12,100 : caption 12,"<" : on_click 12,DepGauche

dll_on "gdi32"
' on definit une region ellipse de même coordonnées que le cercle
cercle% = dll_call4("CreateEllipticRgn",0, 0, w%, h%)
' on definit un carré
carre%  = dll_call4("CreateRectRgn",150, 50, 220, 120)
' on définit une region combinant le cercle et le carré
ret% = dll_call4("CombineRgn",carre%,cercle%,carre%,RGN_DIFF)
dll_off
dll_on "user32"
' on affecte cette region à la form
ret% = dll_call3("SetWindowRgn",hWnd%, carre%, 0)
 dll_off
 dll_on "gdi32"
' on supprime la region cercle, la transformation est faite. On en a plus besoin
ret% = dll_call1("DeleteObject",cercle%)

end
rem ============================================================================
DepDroite:
  left 0,left(0)+100
return
DepGauche:
  left 0,left(0)-100
return

clic:
    dll_off
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd%,16,0,0) : ' 16 c'est la constante de fermeture
return

rem ============================================================================


Je n'ai pas réussi à centrer le carré, mais il doit bien y avoir une possibilité ?

A+
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 20:26

Code:

rem ============================================================================
rem        FORM circulaire
rem ============================================================================
dim hWnd%,ret%,w%,h%, cercle%,carre% ,i
' Constantes
dim RGN_AND  : RGN_AND  = 1
dim RGN_OR   : RGN_OR   = 2
dim RGN_XOR  : RGN_XOR  = 3
dim RGN_DIFF : RGN_DIFF = 4
dim RGN_COPY : RGN_COPY = 5

label clic,DepDroite,DepGauche,Centrer
border_hide 0
width 0,400 : height 0,400 : top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 : color 0,200,100,50
w% = width(0) : h% = height(0)
hWnd% = handle(0)

2d_fill_on : 2d_fill_color 255,0,0 : 2d_pen_color 0,255,255 : 2d_pen_width 20
2d_circle 200,200,100

button 10 : top 10,180 : left 10,160 : caption 10,"Quitter" : on_click 10,clic
button 11 : width 11,20 : height 11,20 : top 11,50 : left 11,270 : caption 11,">>" : font_bold 11 : on_click 11,DepDroite
button 12 : width 12,20 : height 12,20 : top 12,50 : left 12,100 : caption 12,"<<" : font_bold 12 : on_click 12,DepGauche
button 13 : width 13,20 : height 13,20 : top 13,20 : left 13,180 : caption 13,"||" : font_bold 13 : on_click 13,Centrer
dll_on "gdi32"
' on definit une région ellipse de même coordonnées que le cercle
cercle% = dll_call4("CreateEllipticRgn",0, 0, w%, h%)
' on definit un carré
carre%  = dll_call4("CreateRectRgn",130, 50, 260, 120)
' on définit une région combinant le cercle et le carré
ret% = dll_call4("CombineRgn",carre%,cercle%,carre%,RGN_DIFF)
dll_off
dll_on "user32"
' on affecte cette region à la form
ret% = dll_call3("SetWindowRgn",hWnd%, carre%, 0)
 dll_off
 dll_on "gdi32"
' on supprime la region cercle, la transformation est faite. On en a plus besoin
ret% = dll_call1("DeleteObject",cercle%)

end
rem ============================================================================
DepDroite:
  for i = left(0) to screen_x-400 : left 0,i : pause 1 : next i
return
rem ============================================================================
DepGauche:
  for i = left(0) to 20 step -1 : left 0,i : pause 1 : next i
return
rem ============================================================================
Centrer:
  top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
return
rem ============================================================================
clic:
    dll_off
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd%,16,0,0) : ' 16 c'est la constante de fermeture
return

rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 20:36

J'ai un souci: la constante de fermeture ne marche pas, (le bouton quitter), je suis obligé de tuer la tâche.
En plaçant un terminate, j'ai au moins le message Windows qui me permet d'arrêter la programme.

Le bouton "Pause" ne recentre pas le Form comme prévu.

Sinon le carré est bien centé.

A+
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 21:07

Chez moi,  Windows 7   Embarassed , je ne rencontre pas de soucis avec mon bouton quitter
Le bouton « Pause » recentre parfaitement le FORM.

Je n’ai de soucis / problème  qu’avec TERMINATE ! affraid  affraid  affraid
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyMer 27 Avr 2016 - 21:11

La commande n'est peut-être pas la même sous W10, je dis ça, mais j'en sait rien.
Pour Terminate, on connais le problème.

A+
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyJeu 28 Avr 2016 - 1:53


Un autre exemple.

Code:

rem ============================================================================
rem        FORM quelconque
rem ============================================================================
dim hWnd%,ret%,w%,h%,region%, RegionRectangle% ,i
' Constantes
dim RGN_AND  : RGN_AND  = 1
dim RGN_OR   : RGN_OR   = 2
dim RGN_XOR  : RGN_XOR  = 3
dim RGN_DIFF : RGN_DIFF = 4
dim RGN_COPY : RGN_COPY = 5
rem ============================================================================
' CombineRegion utilisé avec RGN_DIFF permet l'union des 2 régions
' il existe aussi :
' RGN_AND pour récupérer l'intersection des deux régions
' RGN_XOR pour faire l'union des parties non communes mais en retirant les parties communes
rem ============================================================================
label fermer
dll_on "gdi32"
' border_hide 0
caption 0,""
width 0,400 : height 0,400 : top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 : color 0,200,100,50
w% = width(0): h% = height(0)
hWnd% = handle(0)
button 10 : top 10,50 : left 10,w%/2-50 : font_bold 10 : caption 10,"Fermer": on_click 10,fermer
' on definit une region ellipse inscrite dasn la forme
Region% =  dll_call4("CreateEllipticRgn",0, 0, w%, h%)
' on definit un carré qui est à l'intérieur de la form
RegionRectangle% = dll_call4("CreateRectRgn",int(w%/2-50),int(H%/2-50),int(W%/2+50),int(H%/2+50))
' on définit une region combinant le cercle et le carré
' CombineRegion utilisé avec RGN_DIFF permet de retirer RegionRectangle de Region
' d'où l'effet de transparence.
ret% = dll_call4("CombineRgn",Region%,Region%,RegionRectangle%,RGN_DIFF)
' libération des ressources avant de réaffecter une autre région
ret% = dll_call1("DeleteObject",RegionRectangle%)

RegionRectangle% = dll_call4("CreateRectRgn",0,h%-40,w%,h%)
' création du rectangle du bas
ret% = dll_call4("CombineRgn",Region%,Region%,RegionRectangle%,RGN_OR)
' libération des ressources
ret% = dll_call1("DeleteObject",RegionRectangle%)
' on affecte cette region à la form
dll_off
dll_on "user32"
ret% = dll_call3("SetWindowRgn",hWnd%,Region%,0)
end
rem ============================================================================
Fermer:
' Si TERMINATE vous pose problème
    ret% = dll_call4("PostMessageA",hWnd%,16,0,0) : ' 16 c'est la constante de fermeture
' Sinon remplacer la ligne ci-dessus par TERMINATE
return

rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyJeu 28 Avr 2016 - 7:59

Excuse-moi Papydall, je suis un Âne.

Ton code fonctionne parfaitement, je n'avais pas compris qu'il fallait d'abord mettre en pause et attendre que le FORM ai terminé son déplacement et cliquer sur quitter pour que la fermeture du programme soit effective.

Désolé pour le dérangement.

A+
Revenir en haut Aller en bas
papydall

papydall


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

trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM EmptyJeu 28 Avr 2016 - 12:05

Tu es tout excusé, de la tête aux pieds.
Tu n’es pas un  Âne , mais tu as fait confiance à Papydall qui n’a pas jugé utile d’expliquer comment piloter ce FORM d’une autre forme !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





trou - Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   trou - Faire un trou complexe dans un objet FORM Empty

Revenir en haut Aller en bas
 
Faire un trou complexe dans un objet FORM
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» trou ou transparence dans un form
» Effet visuel: Faire disparaître un objet
» Déplacer dynamiquement un objet dans une form
» Ajout d'un nouveau type d'objet dans une form Panoramic !
» probleme faire avancer objet 3d

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: