setgadgetcolor und windowevent ...

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

setgadgetcolor und windowevent ...

Beitrag von bingo »

leider komm ich im engl. forum (mit Berikco) nicht weiter ...

nach updatewindow wird das fenster aktualisiert - vor delay !

doch wie sieht die saubere lösung mit pb4 aus ? irgendwie funktioniert WindowEvent() hier nicht sauber oder man schreibt das in eine schleife ...

berikco scheint jetzt beleidigt(?) zu sein , weil ich hier ein feintuning für SetGadgetColor angemahnt habe .

Code: Alles auswählen

OpenWindow(0,100,100,200,118,#PB_Window_BorderLess,"") 
CreateGadgetList(WindowID(0)) 

For i=1 To 6
TextGadget(i,0,(20*i)-20,200,20,"refresh",#PB_Text_Center) 
SetGadgetColor(i,#PB_Gadget_BackColor,$000000) 
SetGadgetColor(i,#PB_Gadget_FrontColor,$0000FF) 
Next

;UpdateWindow_(WindowID(0))
;While WindowEvent() : Delay(1) : Wend

Delay(5000)
ist doch komisch mit ...

Code: Alles auswählen

OpenWindow(0,100,100,200,118,#PB_Window_BorderLess,"") 
CreateGadgetList(WindowID(0)) 

For i=1 To 6
TextGadget(i,0,(20*i)-20,200,20,"refresh",#PB_Text_Center) 
SetGadgetColor(i,#PB_Gadget_BackColor,$000000) 
SetGadgetColor(i,#PB_Gadget_FrontColor,$0000FF) 
Next

;UpdateWindow_(WindowID(0))
;While WindowEvent() : Delay(1) : Wend

SetGadgetText(4,"edit")

Delay(5000)
1:0>1
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Ok,
ich habe dein beispiel getestet und weiss woran es liegt.

Um die Farben der Standardobjekte StaticText, Buttons, etc zu ändern müssen "ALLE" Event´s dafür abgearbeitet werden.

Code: Alles auswählen

OpenWindow(0,100,100,200,118,#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered,"")
CreateGadgetList(WindowID(0))

For i=1 To 6
  TextGadget(i,0,(20*i)-20,200,20,"refresh",#PB_Text_Center)
  SetGadgetColor(i,#PB_Gadget_BackColor,$000000)
  SetGadgetColor(i,#PB_Gadget_FrontColor,$0000FF)
Next

SetGadgetText(4,"edit")

exit = 0
Repeat 
  
  Select WaitWindowEvent()
  
  Case #PB_Event_CloseWindow
    exit = 1
  
  EndSelect

Until exit
FF :allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

das ist soweit klar ...

warum funktioniert das aber so :

Code: Alles auswählen

OpenWindow(0,100,100,200,118,#PB_Window_BorderLess,"") 
CreateGadgetList(WindowID(0)) 

For i=1 To 6 
TextGadget(i,0,(20*i)-20,200,20,"",#PB_Text_Center) 
SetGadgetColor(i,#PB_Gadget_BackColor,$000000) 
SetGadgetColor(i,#PB_Gadget_FrontColor,$0000FF) 
SetGadgetText(i,"refresh")
Next 

Delay(5000)
wenn man die farben des gadgets nach "alter" WinProc- methode ändert , bekommt man das auch sauber hin .

das problem ist hier , dass man keinen sauberen SetGadgetColor hinbekommt , wenn das programm anschliessend anhält (delay...).

wenn man dann ein fenster aufbaut , ändern die farben sich erst , wenn das programm weiterläuft .
1:0>1
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Bei SetGadgetText führt Windows selber ein Update durch.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Gesperrt