Grenzen des Scroll-Gadgets

MAC OSX spezifisches Forum
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Dieter
Beiträge: 22
Registriert: 14.08.2014 14:32
Computerausstattung: MacMini (2018 (2020), I7 3.2GHz, 32GB), OSX 10.15.5, PB 5.61 x64 - VmWare-Fusion: Win10 Home Premium, XP Professional
History: ZX81 - ZX Spectrum - Apple II - Atari ST - PC (MS-DOS 3.2 ... WIN 10) - Linux/UNIX - Mac

Grenzen des Scroll-Gadgets

Beitrag 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)

MacMini (2020, I7 3.2GHz, 32GB), OSX 10.15.x, PB 5.72 LTS x64 - VmWare-Fusion: Win7 Home Premium, XP Professional, Ubuntu 14.04 - ZX81 - Apple II - Atari ST
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Grenzen des Scroll-Gadgets

Beitrag 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.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Grenzen des Scroll-Gadgets

Beitrag 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
Hygge
Antworten