Page 1 sur 1

Perte transparence icônes

Publié : ven. 20/janv./2017 11:19
par ChrisR
Bonjour,

Dans une fenêtre avec SetWindowColor et avec des icônes transparentes, si je minimise la fenêtre et que je la restaure ensuite, je perds la transparence de ces icônes.

Je reproduis avec un code très basique:

Code : Tout sélectionner

Enumeration FormWindow
  #Window_Main
EndEnumeration

Enumeration FormGadget
  #Text
  #Button_Opendir
  #Button_About
EndEnumeration

Enumeration FormImage
  #Img_Opendir
  #Img_about
EndEnumeration

CatchImage(#Img_Opendir,?Img_Opendir)
CatchImage(#Img_about,?Img_about)

Procedure OpenWindow_Main(x = 0, y = 0, width = 360, height = 80)
  OpenWindow(#Window_Main, x, y, width, height, "Transparent icon", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
  SetWindowColor(#Window_Main, RGB(0,0,64))
  TextGadget(#Text, 5, 20, 360, 20, "Minimize and restore the window, the icon loses its transparency!")
  SetGadgetColor(#Text, #PB_Gadget_FrontColor,#White)
  SetGadgetColor(#Text, #PB_Gadget_BackColor,RGB(0,0,64))
  ImageGadget(#Button_Opendir, 180, 50, 0, 0, ImageID(#Img_Opendir))
  ImageGadget(#Button_About, 339, 50, 0, 0, ImageID(#Img_about))
EndProcedure

Procedure Window_Main_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False
  EndSelect
    ;If GetWindowState(#Window_Main) =  #PB_Window_Minimize
    ;EndIf
  ProcedureReturn #True
EndProcedure

DataSection
  Img_Opendir: : IncludeBinary "Opendir.ico"
  Img_about: : IncludeBinary "about.ico"
EndDataSection
Edit: exemple mise à jour (21.7 Ko)
https://www.dropbox.com/s/qfahbd0j0ir6n ... ir.7z?dl=0

Avez-vous une solution ?
PureBasic 5.44 LTS sur win10 x64

Re: Perte transparence icônes

Publié : ven. 20/janv./2017 17:56
par Ar-S
J'ai modifié ton lien pour un téléchargement directe.

Sinon tu ne gères pas tes event(s) dans ton code.
Essaye comme ça j'ai pas eu de soucis après réduction/agrandissement.

Code : Tout sélectionner

Enumeration FormWindow
  #Window_Main
EndEnumeration

Enumeration FormGadget
  #Text
  #Button_Opendir
  #Button_About
EndEnumeration

Enumeration FormImage
  #Img_Opendir
  #Img_about
EndEnumeration

CatchImage(#Img_Opendir,?Img_Opendir)
CatchImage(#Img_about,?Img_about)

Procedure OpenWindow_Main(x = 0, y = 0, width = 360, height = 80)
  OpenWindow(#Window_Main, x, y, width, height, "Transparent icon", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
  SetWindowColor(#Window_Main, RGB(0,0,64))
  TextGadget(#Text, 5, 20, 360, 20, "Minimize and restore the window, the icon loses its transparency!")
  SetGadgetColor(#Text, #PB_Gadget_FrontColor,#White)
  SetGadgetColor(#Text, #PB_Gadget_BackColor,RGB(0,0,64))
  ImageGadget(#Button_Opendir, 180, 50, 0, 0, ImageID(#Img_Opendir))
  ImageGadget(#Button_About, 339, 50, 0, 0, ImageID(#Img_about))
EndProcedure

Procedure Window_Main_Events(event)
  Repeat
 Event = WaitWindowEvent()
  Select event
    Case #PB_Event_CloseWindow
      End
  EndSelect
  Until event = #PB_Event_CloseWindow
    ;If GetWindowState(#Window_Main) =  #PB_Window_Minimize
    ;EndIf
  ProcedureReturn #True
EndProcedure

OpenWindow_Main()
Window_Main_Events(event)

DataSection
  Img_Opendir: : IncludeBinary "Opendir.ico"
  Img_about: : IncludeBinary "about.ico"
EndDataSection


Re: Perte transparence icônes

Publié : sam. 21/janv./2017 9:55
par Mesa
Ça ressemble à un bug. Peut-être un vieux bug en fait.

J'ai essayé avec des png transparents, et ça donne le même problème.

Je pense que tu peux le signaler sur le forum anglais, rubrique "bug".

M.

Re: Perte transparence icônes

Publié : sam. 21/janv./2017 11:57
par Ar-S
Mais tu as essayé mon code Mesa, je ne vois pas de soucis de transparence.

Re: Perte transparence icônes

Publié : sam. 21/janv./2017 13:18
par ChrisR
J'ai essayé avec ton code Ar-S, je reproduis la même chose.
J'avais enlevé les event(s) pour avoir un code "très" basique, mais avec ou sans, c'est pareil ici.
Par contre, je ne sais pas pourquoi tu ne reproduis pas (PB5.44 LTS ici?) !
Mesa semble reproduire comme moi. A suivre donc, pour essayer de comprendre... :wink:

Suite au message de Mesa, j'ai posté dans le forum anglais ici avec une capture écran et avec une image png en plus de l'icône, pour l'exemple.
J'ai mis à jour le code de l'exemple avec ton code https://www.dropbox.com/s/qfahbd0j0ir6n ... ir.7z?dl=0
Merci :D

Image

Re: Perte transparence icônes

Publié : sam. 21/janv./2017 13:32
par Ar-S
Ooups Effectivement en 5.44 ça ne marche pas :[
J'avais testé en 5.51 et là pas de problème.

Re: Perte transparence icônes

Publié : sam. 21/janv./2017 13:47
par ChrisR
Merci Ar-s :D
Il semble être donc uniquement avec 5.44 LTS.
IdeasVacuum sur le forum anglais ne reproduis pas non plus avec 5.43 LTS.

Re: Perte transparence icônes

Publié : lun. 23/janv./2017 14:21
par Mesa
J'utilise bien la version 5.51 x86 sur xp32 où les thèmes graphiques sont désactivés.

J'ai bien le problème mais il se résoud avec l'astuce de "chi" ici http://www.purebasic.fr/english/viewtop ... 97#p500797

M.

Re: Perte transparence icônes

Publié : lun. 23/janv./2017 18:07
par Ar-S
Et en activant les themes en xp pb 5.51 ça marche pas non plus ?
Faudra pas oublier de bidouiller avec du compilerif si tu veux faire du multiplateforme du fait des API dans le code de chi