[v4 beta4] TextGadget BackColor [Résolu]

Archive.
ATLON1200
Messages : 3
Inscription : lun. 30/janv./2006 17:07
Localisation : Orléans

[v4 beta4] TextGadget BackColor [Résolu]

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Dernière modification par Flype le jeu. 02/mars/2006 21:46, modifié 1 fois.
Image
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message 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 ...
ATLON1200
Messages : 3
Inscription : lun. 30/janv./2006 17:07
Localisation : Orléans

Message 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.
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Il faut aussi que tu changes ta boucle sinon tes evenements ne seront pas correctement gérés.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
Répondre