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.
Faire un trou complexe dans un objet FORM Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Faire un trou complexe dans un objet FORM Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Faire un trou complexe dans un objet FORM Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Faire un trou complexe dans un objet FORM Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Faire un trou complexe dans un objet FORM Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Faire un trou complexe dans un objet FORM Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Faire un trou complexe dans un objet FORM Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Faire un trou complexe dans un objet FORM Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Faire un trou complexe dans un objet FORM Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Faire un trou complexe dans un objet FORM Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Faire un trou complexe dans un objet FORM Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Faire un trou complexe dans un objet FORM Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Faire un trou complexe dans un objet FORM Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Faire un trou complexe dans un objet FORM Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Faire un trou complexe dans un objet FORM 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
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Faire un trou complexe dans un objet FORM   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 : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Faire un trou complexe dans un objet FORM Empty
MessageSujet: re   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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é





Faire un trou complexe dans un objet FORM Empty
MessageSujet: Re: Faire un trou complexe dans un objet FORM   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 !
» SUB centrer objet à partir d'1 form divisé en lig. et col.

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: