Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
Ah ok je pige.
Tu pourrais toujours recopier ta couleur de fond de fenêtre et l'appliquer à ton canvas. Le dessin par dessus offrira alors le "juste mélange de couleur" si tu le dessines avec une couche alpha non ?
Tu pourrais toujours recopier ta couleur de fond de fenêtre et l'appliquer à ton canvas. Le dessin par dessus offrira alors le "juste mélange de couleur" si tu le dessines avec une couche alpha non ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
oui Ar_s je peux faire cela, bien sur je connais les solutions habituelles.
mais il faut pas mal de code pour le faire.
alors que là une simple option transparence et l'on pourrait
travailler avec plusieurs Canvas superposés, choisir les niveaux visibles
tout simplement avec un simple HideGadget etc..
Cordialement
mais il faut pas mal de code pour le faire.
alors que là une simple option transparence et l'on pourrait
travailler avec plusieurs Canvas superposés, choisir les niveaux visibles
tout simplement avec un simple HideGadget etc..
Cordialement
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
en fait c'est facile !kernadec a écrit : enfin, je parlais de la surface de dessin de CanvasGadget.
On pourrait avoir la possibilité de choisir une couleur
de fond avec l'option transparence de cette surface,
genre fenêtre transparente.
Cordialement

juste 2 lignes de code !



Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
eh bien bravo Dobro
ce que je cherche c'est rendre un Canvasgadget Transparent sans API.
Cordialement

ce que je cherche c'est rendre un Canvasgadget Transparent sans API.
Cordialement
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
pffff ! mauvais joueur 

Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
1 image1 de fond de ta fenetre
1 image2 plus petit de la taille de ton canvas ou tu grab juste l'image original à la position et taille du gadget
puis tu redessines ton image2 avec transparence dans le canvas.
Pas besoin d'API même si quelques lignes de codes sont à prévoir effectivement, mais pas des masses non plus.
1 image2 plus petit de la taille de ton canvas ou tu grab juste l'image original à la position et taille du gadget
puis tu redessines ton image2 avec transparence dans le canvas.
Pas besoin d'API même si quelques lignes de codes sont à prévoir effectivement, mais pas des masses non plus.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
arf ! je croyais qu'il voulait une reelle transparence !
qu'on voit a travers le Canvas , ET a travers la fenetre !
(qu'on voit le bureau quoi )
bon voila ce que j'avais trouvé
du reste il me semble qu'il y a un bug de Pb
lors du premier clique sur le canva, la fenetre se barre
on la ramene , on peut dessiner dans le canvas , mais quelque fois ... ???
la fenetre se rebarre au premier clique .... cherchez l'erreur
le code
qu'on voit a travers le Canvas , ET a travers la fenetre !

bon voila ce que j'avais trouvé

du reste il me semble qu'il y a un bug de Pb
lors du premier clique sur le canva, la fenetre se barre
on la ramene , on peut dessiner dans le canvas , mais quelque fois ... ???
la fenetre se rebarre au premier clique .... cherchez l'erreur

le code
Code : Tout sélectionner
enumeration
#win
#cadre
#canvas
EndEnumeration
declare WindowCallback(WindowID,message,wParam,lParam)
If OpenWindow(#win, 0, 0, 600, 600, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered|#PB_Window_SizeGadget)
CanvasGadget(#canvas, 20, 20, 190, 190,#PB_Canvas_Border)
; ******* grosse arnaque a Dobro ;o) ***************
StartDrawing(WindowOutput(#win))
drawingmode(#PB_2DDrawing_Outlined )
box(10,10,210,210,rgb(0,0,0))
FillArea(11, 11, -1,rgb(255,0,255))
StopDrawing()
startdrawing(CanvasOutput(#canvas))
FillArea(11, 11, -1,rgb(0,125,0)) ; on met une couleur au fond du Canvas , qui sera la couleur qui deviendra transparente (un fond Vert comme pour la Meteo LOL )
StopDrawing()
; *********************************************
;SetWindowColor(#WIN,rgb(0,125,0)) ; si on veut rendre toute la fenetre transparente !!
couleuralpha=255
SetWindowLong_(windowID(#win), #GWL_EXSTYLE, #WS_EX_LAYERED|#WS_EX_TOPMOST) ; on dit au system que notre fenetre sera "décorée"
SetLayeredWindowAttributes_(windowID(#win),rgb(0,125,0),couleuralpha,#LWA_COLORKEY|#LWA_ALPHA) ; ici on rends notre vert (rgb(0,125,0) transparent .. c'est la fameuse "décoration"
; ******* et voila ........... fini ****************
SetWindowCallback(@WindowCallback())
Repeat
Event = WaitWindowEvent(2)
If Event = #PB_Event_Gadget
if EventGadget() = #canvas
;;;If EventType() = #PB_EventType_LeftButtonDown or (EventType() = #PB_EventType_MouseMove )
if GetGadgetAttribute(#canvas, #PB_Canvas_Buttons) and #PB_Canvas_LeftButton
If StartDrawing(CanvasOutput(#canvas))
x = GetGadgetAttribute(#canvas, #PB_Canvas_MouseX)
y = GetGadgetAttribute(#canvas, #PB_Canvas_MouseY)
Circle(x, y, 10, RGB(Random(255), Random(255), Random(255)))
StopDrawing()
Endif
;;;EndIf
Endif
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Procedure WindowCallback(WindowID,message,wParam,lParam)
; by Dobro
res=#PB_ProcessPureBasicEvents
Select message
Case #WM_PAINT
; ******* grosse arnaque a Dobro ;o) ***************
StartDrawing(WindowOutput(#win))
drawingmode(#PB_2DDrawing_Outlined )
box(10,10,210,210,rgb(0,0,0))
FillArea(11, 11, -1,rgb(0,255,0))
drawingmode(#PB_2DDrawing_Default )
; haut
for i=2 to 204 step 6
circle(11+i,15,2,rgb(random(255),random(255),random(255)))
next i
; bas
for i=2 to 204 step 6
circle(11+i,213,2,rgb(random(255),random(255),random(255)))
next i
; gauche
for i=2 to 204 step 6
circle(15,11+i,2,rgb(random(255),random(255),random(255)))
next i
; droite
for i=2 to 204 step 6
circle(213,11+i,2,rgb(random(255),random(255),random(255)))
next i
StopDrawing()
; *********************************************
delay(10)
ProcedureReturn #True
EndSelect
ProcedureReturn res ; important , laissez passer les autres evenements !!!
EndProcedure
;
; EPB
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
merci Ar_s, je sais que l'on peut faire comme cela.
mais bon... tu as sans doute raison.
Cordialement
mais bon... tu as sans doute raison.
Cordialement
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
merci Dobro c'est pas mal..
le problème, c'est que le canvas est transparent au premier clic on dessine.
ensuite il n'est plus transparent car on est passé au travers
on se retrouve sur le bureau plus moyen de retourner
sur la surface transparente du canvas... dommage.
encore merci
Cordialement
le problème, c'est que le canvas est transparent au premier clic on dessine.
ensuite il n'est plus transparent car on est passé au travers
on se retrouve sur le bureau plus moyen de retourner
sur la surface transparente du canvas... dommage.
encore merci
Cordialement
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
chez moi le comportement est différent
je lance le prg ( sous debugger )
je clique pour dessiner , la fenetre se barre
je la rappel par la barre des taches (le canvas perd sa transparence )
je peux enfin dessiner et le canvas redevient transparent
et ...
si je relache le click , et que je reclik a nouveau pour dessiner , soit ça marche
soit la fenetre se rebarre !!
c'est pourquoi je pense a un bug PB
je lance le prg ( sous debugger )
je clique pour dessiner , la fenetre se barre
je la rappel par la barre des taches (le canvas perd sa transparence )
je peux enfin dessiner et le canvas redevient transparent
et ...
si je relache le click , et que je reclik a nouveau pour dessiner , soit ça marche
soit la fenetre se rebarre !!

c'est pourquoi je pense a un bug PB
Re: Changer la couleur Bordure Canvas ? (#PB_Canvas_Border)
bug je sais pas ..
pareil il disparait après avoir dessiné.
avec l'icone prg dans la barre de tache, il réapparait.
mais je me retrouve avec le curseur texte dans l'IDE de PB au travers du canvas
si je redessine, il me sélectionne du code texte.
pareil il disparait après avoir dessiné.
avec l'icone prg dans la barre de tache, il réapparait.
mais je me retrouve avec le curseur texte dans l'IDE de PB au travers du canvas
si je redessine, il me sélectionne du code texte.