Ich habe hier ein SplitterGadget, das Vertikal 2 Container in der Grösse ändern kann.
Beim Splittergadget "resize", also dem bewegen des Balkens, flackert es natürlicherweise beim Webgadget.
Das ist aber gar nicht das Problem, sondern, das das Webgadget komplett nicht mehr auftaucht.
Wenn man den Splitter nun ein wenig hin und herschiebt, verschwindet das Webgadget komplett.
Um festzustellen, ob der Splitterbalken sich bewegt, nehme ich den relativ neuen EventType des
Containergadgets : #PB_EventType_Resize. Also ich prüfe ob der Container die Grösse ändert (was
ja beim Splitter der Fall ist). Ansonsten wüsste ich jetzt nicht, wie man feststellen sollte das der User
das Splittergadget benutzt. Das Ding hat ja keine Events/EventTypes laut der Hilfe.
Wie krieg ich das Webgadget nach einem Resize wieder sichtbar ?
Lösungen dürfen auch WindowsAPI enthalten...
Hier eine Demo um das Problem zu veranschaulichen.
Code: Alles auswählen
OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
; Container Links mit nix drin
ContainerGadget(0, 0, 0, 0, 0, #PB_Container_Raised) : CloseGadgetList()
; Container Rechts mit dem WebGadget
ContainerGadget(1, 0, 0, 0, 0, #PB_Container_Double)
WebGadget(2, 0, 0, 0, 0, "http://www.google.de")
CloseGadgetList()
; Splitter der die beiden Container beinhaltet
SplitterGadget(3, 0, 0, 640, 480, 0, 1, #PB_Splitter_Vertical)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 1 ; Container rechts
If EventType() = #PB_EventType_Resize ; Wurde in der Grösse geändert
ResizeGadget(2, 0, 0, GadgetWidth(1), GadgetHeight(1)); Webgadget an Container anpassen
EndIf
EndSelect
EndSelect
ForEver