Seite 1 von 1
WindowCentered überschreibt ScreenCentered?
Verfasst: 24.12.2022 12:32
von s91
Hi
Ich war mir eben sicher, dass früher mal der #pb_window_screenCentered flag den #pb_window_windowCentered flag überschrieb. Das unten stehende Programm würde dann das Fenster im Bildschirm mittig zentrieren.
Code: Alles auswählen
openWindow ( 1,
0,
0,
480,
240,
"center",
#pb_window_screenCentered | #pb_window_windowCentered )
messageRequester ( "#pb_window_screenCentered | #pb_window_windowCentered",
"This window is not placed in the center of the screen.")
repeat
until waitWindowEvent () = #pb_event_closeWindow
Warum ist das (jetzt) eigentlich nicht (mehr) so?
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 24.12.2022 13:55
von mk-soft
Wurde wohl geändert. Aber für #pb_window_windowCentered muss man ein Parent Window angeben
Code: Alles auswählen
OpenWindow(0, 100, 100, 600, 400, "Test", #PB_Window_SystemMenu)
OpenWindow(1, 0, 0, 480, 240, "center", #PB_Window_WindowCentered, WindowID(0))
Repeat
Until WaitWindowEvent () = #PB_Event_CloseWindow
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 24.12.2022 14:05
von HeX0R
Mit 5.71 ging es zumindest noch, aber warum / weshalb das nun anders ist, weiß ich nicht, aber stört eigentlich auch nicht.
(Man kann es übrigens mit der Code Formatierung auch übertreiben

)
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 25.12.2022 12:43
von Nino
Wenn ich ein zentriertes Fenster erzeugen will muss ich mich entscheiden, in Bezug worauf es zentriert werden soll: in Bezug auf den Bildschirm oder in Bezug auf ein anderes Fenster (das natürlich spezifiziert werden muss, wie hier schon geschrieben wurde). Daher verstehe ich nicht welcher Sinn darin liegen sollte, beim Befehl OpenWindow() die Flags #PB_Window_ScreenCentered und #PB_Window_WindowCentered beide gleichzeitig anzugeben.
Frohe Weihnachten!
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 27.12.2022 17:51
von s91
HeX0R hat geschrieben: 24.12.2022 14:05
Mit 5.71 ging es zumindest noch...
Danke! Ja, in 5.71 würde desktopCentered grundsätzlich alles überschreiben. Damit wäre Ninos Sichtweise implementiert.
Für den Fall, dass ich ein Fenster wahlweise ohne oder mit parent zentrieren möchte, liese sich dieser code beschreiben:
Code: Alles auswählen
procedure doWindow (*dynamicParent = #null)
openWindow ( #pb_any,
0,
0,
160,
100,
"center",
#pb_window_screenCentered | #pb_window_windowCentered,
*dynamicParent )
endProcedure
*parent.integer = openWindow ( #pb_any,
0,
0,
400,
250,
"Hauptanwendung",
#pb_window_systemMenu )
doWindow (*parent\i)
doWindow ()
repeat
until waitWindowEvent () = #pb_event_closeWindow
Allerdings greift windowCentered hier nicht richtig, sondern hebelt nur screenCentered aus... ein Bug
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 27.12.2022 18:48
von Nino
s91 hat geschrieben: 27.12.2022 17:51
Danke! Ja, in 5.71 würde desktopCentered grundsätzlich alles überschreiben. Damit wäre Ninos Sichtweise implementiert.
Nicht wirklich. Meine Sichtweise ist – wie gesagt – dass man sinnvollerweise darauf verzichtet beide Flags gleichzeitig anzugeben, da sie sich gegenseitig ausschließen.
s91 hat geschrieben: 27.12.2022 17:51
Für den Fall, dass ich ein Fenster wahlweise ohne oder mit parent zentrieren möchte, liese sich dieser code beschreiben:
Code: Alles auswählen
procedure doWindow (*dynamicParent = #null)
openWindow ( #pb_any,
0,
0,
160,
100,
"center",
#pb_window_screenCentered | #pb_window_windowCentered,
*dynamicParent )
endProcedure
*parent.integer = openWindow ( #pb_any,
0,
0,
400,
250,
"Hauptanwendung",
#pb_window_systemMenu )
doWindow (*parent\i)
doWindow ()
repeat
until waitWindowEvent () = #pb_event_closeWindow
Wirklich

Wo ist denn dokumentiert, dass das so funktionieren sollte, wie du es erwartest?
Für den Fall, dass ich ein Fenster wahlweise in Bezug auf den Bildschirm oder in Bezug auf ein Elternfenster zentrieren wollte, würde ich einfach eine entspr. Bedingung mit
If verwenden.
Re: WindowCentered überschreibt ScreenCentered?
Verfasst: 27.12.2022 18:57
von s91
Ich war mal so verrückt, das in die Bugs section zu posten, im Englischen. Wenn der Post von den Machern unbeachtet bleibt, hast du wohl recht
