Page 1 sur 1

[v4 beta4] TextGadget BackColor [Résolu]

Publié : mer. 01/mars/2006 21:57
par ATLON1200
Salut à tous,

Bug ou pas ?
La couleur de fond du TextGadget s'affiche avec un temps de retard.
Pas de problème si : event = WaitWindowEvent()

Au plaisir, :lol:

Code : Tout sélectionner

Enumeration
#Window0
#Texte0
EndEnumeration

If OpenWindow(#Window0,0,0,400,100,#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget ,"Test")
SetWindowColor(#Window0,RGB(228, 232, 145)) 

            If CreateGadgetList(WindowID(#Window0))
            TextGadget(#Texte0,5,5,200,20,"Essai affichage")     
            SetGadgetColor(#Texte0, #PB_Gadget_BackColor, RGB(228, 232, 145))
            EndIf

EndIf





Repeat 
event = WindowEvent()  


Delay(1)  
Until event = #PB_Event_CloseWindow
End

Publié : jeu. 02/mars/2006 14:55
par Flype
Tout d'abord, bienvenu et bonjour à cette belle ville qu'est Orléans.

Je n'observe pas ce problème moi avec PB4 Beta4.

Toutefois, quand je dessine dans une fenêtre souvent je lui mets le flag #PB_Window_Invisible.

Ainsi, pendant la création de la fenêtre l'utilisateur ne voit pas tout les tracés de création d'interface.

Une fois l'interface créée on réaffiche la fenêtre, le rendu est souvent plus propre ainsi. Essayes pour voir.

Code : Tout sélectionner

Enumeration
  #Window0
  #Texte0
EndEnumeration

flags = #PB_Window_SystemMenu
flags | #PB_Window_ScreenCentered
flags | #PB_Window_MinimizeGadget
flags | #PB_Window_Invisible

If OpenWindow(#Window0,0,0,400,100,flags,"Test")
  SetWindowColor(#Window0,RGB(228, 232, 145))
  If CreateGadgetList(WindowID(#Window0))
    TextGadget(#Texte0,5,5,200,20,"Essai affichage")     
    SetGadgetColor(#Texte0, #PB_Gadget_BackColor, RGB(228, 232, 145))
  EndIf
EndIf

HideWindow(#Window0,#False)

Repeat
  event = WindowEvent() 
  If event = 0
    Delay(1) 
  EndIf
Until event = #PB_Event_CloseWindow

End

Publié : jeu. 02/mars/2006 15:13
par Fred
Quand on utilise WindowEvent(), la boucle doit etre sous la forme:

Code : Tout sélectionner

Repeat
  Event = WindowEvent()
  If Event = 0
    Delay(1)
  EndIf
Until ...

Publié : jeu. 02/mars/2006 16:51
par ATLON1200
Merci pour vos réponses.
Flype, j'ai adopté ta solution. :wink:

NB : Bonjour également à la ville de Nantes que je n'ai pas le plaisir
de connaitre, mais je suis certain qu'elle doit également être très
sympathique.

Publié : jeu. 02/mars/2006 17:05
par Fred
Il faut aussi que tu changes ta boucle sinon tes evenements ne seront pas correctement gérés.

Publié : jeu. 02/mars/2006 21:48
par Flype
ATLON1200 a écrit :Merci pour vos réponses.
Flype, j'ai adopté ta solution. :wink:

NB : Bonjour également à la ville de Nantes que je n'ai pas le plaisir
de connaitre, mais je suis certain qu'elle doit également être très
sympathique.
J'ai mis à jour mon exemple sur les conseils de Fred.

Et oui Nantes est une ville très agréable, j'en changerais pas :P