Hallo,
ich habe mit der Dialog-Lib viele ContainerGadgets angelegt, die alle übereinander liegen und bei Bedarf angezeigt werden.
Diese Container enthalten jeweils auch Gadgets, darunter einige ListIconGadgets. Deren Spaltenbreiten möchte ich
abhängig von der eigentlichen Gadgetbreite skalieren.
Seit einiger Zeit soll ja der bevorzugte Weg für die Reaktion auf Size-Events BindEvent() sein anstatt der herkömmlichen Behandlung
in der Eventschleife. Das funktioniert beim normalen Resizen (Fenster am Rahmen anfassen und größer ziehen) auch ganz gut,
allerdings: sobald ich das Fenster maximiere bzw. aus dem maximierten Zustand wiederherstelle, scheint der Callback über BindEvent()
"zu schnell" zu sein, d.h. GadgetWidth() rechnet immer noch mit den Werten vor der Größenänderung und demzufolge werden auch
die Spaltenbreiten falsch berechnet.
Stelle ich von BindEvent() wieder auf die herkömmliche Behandlung innerhalb der Eventschleife um, funktioniert das Resizen bei Maximieren
wieder, allerdings flackert das ganze Fenster beim "größerziehen" dann fürchterlich.
Mit einem kleinen Testcode konnte ich das Verhalten nicht nachstellen, daher gehe ich davon aus, dass die Probleme im Zusammenspiel
von Dialog-Lib und der großen Anzahl von Gadgets/ListIcons entstehen.
Hat vielleicht trotzdem jemand eine Idee, wie ich auch beim Maximieren/Wiederherstellen den gewünschten Effekt erziele?
SizeWindow und Spaltenbreiten bei vielen ListIcons
SizeWindow und Spaltenbreiten bei vielen ListIcons
Win11 x64 | PB 6.00 (x64)
Re: SizeWindow und Spaltenbreiten bei vielen ListIcons
Prüfst du mit BindEvent nur auf #PB_Event_SizeWindow oder auch auf #PB_Event_MaximizeWindow und #PB_Event_RestoreWindow?Andesdaf hat geschrieben:allerdings: sobald ich das Fenster maximiere bzw. aus dem maximierten Zustand wiederherstelle, scheint der Callback über BindEvent() "zu schnell" zu sein, d.h. GadgetWidth() rechnet immer noch mit den Werten vor der Größenänderung und demzufolge werden auch
die Spaltenbreiten falsch berechnet.
Oder werden die Events #PB_Event_MaximizeWindow und #PB_Event_RestoreWindow ebenfalls "zu früh" ausgewertet?
Und hast du schon mit #PB_Event_Repaint ausprobiert?
Ansonsten kannst du versuchen, nach dem #PB_Event_MaximizeWindow-Event ein PostEvent auszuführen, um ein bestimmtes Event erneut auszulösen.
Re: SizeWindow und Spaltenbreiten bei vielen ListIcons
Ja, ich reagiere auch auf Maximize und Restore. Repaint habe ich versucht, das zerstört mir aber anscheinend
die übereinanderliegenden Container und ein darunter liegender Container "scheint durch".
Das mit dem Extra-Event ist eine gute Idee, das schau ich mir mal an.
die übereinanderliegenden Container und ein darunter liegender Container "scheint durch".
Das mit dem Extra-Event ist eine gute Idee, das schau ich mir mal an.
Win11 x64 | PB 6.00 (x64)