
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
    
 EndProcedureCode: 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!