
Die alte Position der Gadgets überdeckt die neue Position.
Wenn ich mit der Maus darüberfahre oder bei der Trackbar draufdrücke, dann verschwinden die Artefakte.
Was ist da falsch gelaufen ?
Code: Alles auswählen
EnableExplicit
Enumeration Window
#Window_mp3
EndEnumeration
Enumeration Gadget
#Play
#Stop
#Pause
#Vor
#Rueck
#String_Titelanzeige
#Trackbar_Volume
#String_Time
#String_Zeit
#Trackbar_Titel
EndEnumeration
Enumeration Font
#Font_ID3
EndEnumeration
Declare windowgroesse()
LoadFont(#Font_ID3,"Cooper Std Black", 10, #PB_Font_Italic | #PB_Font_HighQuality)
Global oldwidth=1000, oldheight=800
OpenWindow(#Window_mp3, 0, 0, oldwidth , oldheight, "test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
SetWindowColor(#Window_mp3, $321700)
WindowBounds(#Window_mp3, oldwidth, oldheight, #PB_Ignore, #PB_Ignore)
ButtonGadget(#Rueck, 110, 710, 40, 40, "rueck")
ButtonGadget(#Play, 175, 710, 40, 40, "Play" )
ButtonGadget(#Pause, 240, 710, 40, 40, "Pause", #PB_Button_Toggle)
ButtonGadget(#Stop, 305, 710, 40, 40, "Stop")
ButtonGadget(#Vor, 370, 710, 40, 40, "vor")
TrackBarGadget(#Trackbar_titel, 10, 660, 275, 25, 0,1000 ,#PB_TrackBar_Ticks)
TextGadget(#String_Time, 298, 660,180,25, "00:00:00 / 00:00:00")
SetGadgetColor(#String_Time, #PB_Gadget_FrontColor,$6357FF)
SetGadgetColor(#String_Time, #PB_Gadget_BackColor,0)
TrackBarGadget(#Trackbar_Volume, 490, 660, 20, 100, 0 ,100, #PB_TrackBar_Vertical)
StringGadget(#String_Titelanzeige, 10, 610, 500, 30, "")
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
windowgroesse()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ForEver
Procedure windowgroesse()
Define width, height, diffwidth, diffheight
width=WindowWidth(#Window_mp3)
height=WindowHeight(#Window_mp3)
diffwidth=(width-oldwidth)/2
diffheight=(height-oldheight)/2
If width>oldwidth Or height>oldheight
ResizeGadget(#Rueck, 110, 710+(diffheight*2), 40, 40)
ResizeGadget(#Play, 175, 710+(diffheight*2), 40, 40)
ResizeGadget(#Pause, 240, 710+(diffheight*2), 40, 40)
ResizeGadget(#Stop, 305, 710+(diffheight*2), 40, 40)
ResizeGadget(#Vor, 370, 710+(diffheight*2), 40, 40)
ResizeGadget(#String_Time, 298, 660+(diffheight*2),180,20)
ResizeGadget(#String_Titelanzeige, 10, 610+(diffheight*2), 500,30)
ResizeGadget(#Trackbar_Volume, 490, 660+(diffheight*2), 20, 100)
ResizeGadget(#Trackbar_titel, 10, 660+(diffheight*2), 275, 25)
Else
ResizeGadget(#Rueck, 110, 710, 40, 40)
ResizeGadget(#Play, 175, 710, 40, 40)
ResizeGadget(#Pause, 240, 710, 40, 40)
ResizeGadget(#Stop, 305, 710, 40, 40)
ResizeGadget(#Vor, 370, 710, 40, 40)
ResizeGadget(#String_Time, 298, 660,180,20)
ResizeGadget(#String_Titelanzeige, 10, 610, 500,30)
ResizeGadget(#Trackbar_Volume, 490, 660, 20, 100)
ResizeGadget(#Trackbar_titel, 10, 660, 275, 25)
EndIf
EndProcedure
Code: Alles auswählen
BindEvent(#PB_Event_SizeWindow, @windowgroesse())
PureBasic.chm hat geschrieben:- Geändert: #PB_Event_SizeWindow und #PB_Event_MoveWindow arbeiten nicht mehr in Echtzeit auf Windows, verwenden Sie BindEvent() um Echtzeit-Aktualisierungen zu erhalten. Dies sollte hässliches Flimmern bei Echtzeit-Größenänderungen auf Windows beseitigen.
Danke für den Tip. Wird gemacht.ts-soft hat geschrieben:Laß das mit BindEvent() auf jedem Fall drinne, ist der empfohlene Weg seit 5.30!