Seite 1 von 1

Grenzen des Scroll-Gadgets

Verfasst: 03.01.2018 12:47
von Dieter
Hallo und eine gute neues Jahr zusammen!

Für eine künftige Anwendung habe ich etwas mit dem Scroll-Gadget experimentiert.
Dazu habe ich in einem Scroll-Gadget mittels Schleife 1000 Container mit eine Einzelhöhe
von 50 Pixeln erzeugt. In jedem Container wurde ein Button und ein Text platziert.

Beim Mac geht das ohne Probleme, bei Windows wird es ab einer Höhe von 32768 Pixeln
problematisch. Beim Mac gehen auch 10000 - ist zwar nicht nötig, geht aber!

Ist das nun ein Bug unter Windows oder Feature beim Mac?

Hier die relevanten Code-Schnipsel dazu:

Code: Alles auswählen


Global Window_test
Global ScrollArea_test, Button_test_ende

Procedure OpenWindow_test(x = 0, y = 0, width = 490, height = 680)
  Window_test = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu)
  ScrollArea_test = ScrollAreaGadget(#PB_Any, 30, 30, 430, 590, 300, 225, 1)
  CloseGadgetList()
  Button_test_ende = ButtonGadget(#PB_Any, 200, 640, 100, 25, "Beenden")
EndProcedure

c_h=40
c_w=395

OpenWindow_test()
SetGadgetAttribute(ScrollArea_test, #PB_ScrollArea_InnerWidth, c_w+10)
n=0
While n<=10000
  OpenGadgetList(ScrollArea_test)
  SetGadgetAttribute(ScrollArea_test, #PB_ScrollArea_InnerHeight, (n+1)*c_h)
  c=ContainerGadget(#PB_Any, 5, n*c_h, c_w, c_h,  #PB_Container_Double)
  SetGadgetColor(c,  #PB_Gadget_BackColor, $D7ECEC)
  ButtonGadget(#PB_Any, 5, 5, 100, 25, "Button "+Str(n))
  TextGadget(#PB_Any, 120, 5, 200, 25, Str(n*c_h))
  CloseGadgetList()
  n+1
Wend
    
Repeat
  Event=WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      EventGadget=EventGadget()
      Select EventGadget
        Case Button_setup_Speichern
        Case Button_test_ende
          Event = #PB_Event_CloseWindow
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow

CloseWindow(window_test)


Re: Grenzen des Scroll-Gadgets

Verfasst: 03.01.2018 13:38
von #NULL
Unter Linux bekomme ich einen IMA bei n = 123. Abhilfe schafft ein zweites CloseGadgetList() in der Schleife, einmal für den Container und einmal für die ScrollArea.

Re: Grenzen des Scroll-Gadgets

Verfasst: 03.01.2018 14:01
von Kiffi
Dieter hat geschrieben:Ist das nun ein Bug unter Windows oder Feature beim Mac?
eigentlich kein Bug unter Windows, sondern -- sagen wir mal -- eine Einschränkung.

siehe auch: http://www.purebasic.fr/english/viewtop ... 65#p303765

Grüße ... Peter