MessageRequester ParentWindow
Re: Repaint (Flackern) bei Shift, ist das normal?
@ts-soft
Ja, ich weiß. Ich wollte nur rasch zeigen, was passiert, wenn das Fenster X (ob 1. oder 2. Fenster) im Vordergrund ist. Hab einfach bei mir irgendeine Vorlage genutzt.
Ja, ich weiß. Ich wollte nur rasch zeigen, was passiert, wenn das Fenster X (ob 1. oder 2. Fenster) im Vordergrund ist. Hab einfach bei mir irgendeine Vorlage genutzt.
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Repaint (Flackern) bei Shift, ist das normal?
Ja, standardmäßig sollte erstmal nichts modal sein. Erst wenn man ein Fenster angibt sollte es modal sein. Eventuell könnte man ja zusätzlich zum Fensterargument ein Flag angeben: #PB_ModalParent_AutoChoose, #PB_ModalParent_None, #PB_ModalParent_SeeParameter, damit man auch rückwärtskompatibel bleibt. Der Standardwert könnte dann auch #PB_ModalParent_AutoChoose sein damit es sich so wie jetzt verhält.ts-soft hat geschrieben:Mit anderen Worten, als Default sollte 0 sein? Das bringt ja die Einsteiger zu fehlern und gesucht werden muss da auch nicht.DarkDragon hat geschrieben:Ich weiß nicht, wie ihr das verteitigen könnt, das ist ein zusätzlicher Parameter, der dem PB Team sogar die Arbeit wegnehmen würde das aktive Fenster zu suchen.
Auch die anderen Dialoge sollten dann demnach angepasst werden und auch erstellte Fenster sollten Modal zu anderen sein können.
Ja, das dachte ich auch, aber es demonstriert wie PB funktioniert und das ist schon behämmert so wie es ist.ts-soft hat geschrieben:PS: Ich weiß ja nicht, was RSBasic mit seinem Beispiel beweisen möchte, aber blockierende Dialoge dürfen nur in dem Thread
erstellt werden, in dem das zugehörige Fenster erstellt wurde. So ist das Beispiel die genau falsche Anwendung eines
modalen Dialoges
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Repaint (Flackern) bei Shift, ist das normal?
Können Sie dochDarkDragon hat geschrieben:und auch erstellte Fenster sollten Modal zu anderen sein können.
ParentID und EnableWindows, alles benötigte ist doch dabei.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Repaint (Flackern) bei Shift, ist das normal?
Um mal kurz auf das Beispiel in RSBasics Post zurück zu kommen. Unter Linux werden die beiden Fenster erstellt und dann kommt "Das mit dem Debugger getestete Executable endete unerwartet.". Mache ich den Thread weg, gibt es keine Probleme. Ist das nun ein Bug?` 
Re: Repaint (Flackern) bei Shift, ist das normal?
@ NicTheQuick
Vergiss bitte, was für Beispiele ich dort oben gepostet habe.
Versuch es damit:
Einmal mit SetWindowState(1,#PB_Window_Minimize) und ohne testen.
Sollte aber nur zeigen, was passiert, wenn 1. oder 2. Fenster im Vordergrund ist, bevor die MsgBox erscheint. Du musst dann auf das entsprechende Fenster anklicken, um zu sehen, ob die MsgBox aufblinkt. Hat aber direkt nichts mit dem besprochenden Bug zu tun.
Vergiss bitte, was für Beispiele ich dort oben gepostet habe.
Versuch es damit:
Code: Alles auswählen
EnableExplicit
Define EventID
Procedure Window1()
If OpenWindow(1,0,0,300,200,"ChildWindow",#PB_Window_SystemMenu|#PB_Window_WindowCentered)
SetWindowState(1,#PB_Window_Minimize)
EndIf
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
Window1()
MessageRequester("", "Hallo Du.", 0)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfSollte aber nur zeigen, was passiert, wenn 1. oder 2. Fenster im Vordergrund ist, bevor die MsgBox erscheint. Du musst dann auf das entsprechende Fenster anklicken, um zu sehen, ob die MsgBox aufblinkt. Hat aber direkt nichts mit dem besprochenden Bug zu tun.
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Repaint (Flackern) bei Shift, ist das normal?
@RSBasic: Es fehlt immer noch das Flag "#PB_Window_MinimizeGadget", sonst wird bei mir gar nichts minimiert. Und ich hab auch immer noch nicht den Unterschied verstanden mit und ohne das "SetWindowState(...)". Beide male kommt ein MessageRequester und zeigt mir was und ich kann die beiden Fenster nicht schließen bevor ich auf "OK" drücke, was ja Sinn macht, weil ich bis dahin noch gar nicht im Event-Loop bin. Das minimierte Fenster kann ich zwar wiederherstellen, aber auch solange nicht erneut minimieren, bis ich auf "OK" gedrückt habe. Verschieben der Fenster ist kein Problem.
Ich glaub ich hab nicht ganz kapiert, was hier zu testen ist. ^^
Ich glaub ich hab nicht ganz kapiert, was hier zu testen ist. ^^
Re: Repaint (Flackern) bei Shift, ist das normal?
@NicTheQuick
Ups ja stimmt, funktioniert bei mir aber auch ohne Minimize-Flag.
Bezüglich deiner Verständnisfrage: Das extra Thema ging ab hier los: http://www.purebasic.fr/german/viewtopi ... 02#p304102
Die Frage lautete, warum die MsgBox standardmäßig modal zum aktiven Fenster wird, welches sich im Vordergrund befindet. D.h. du musst die MsgBox erst wegklicken und erst dann kannst du das Fenster, welches noch aktiv war, weiterverwenden.
DargDragon hat sich dann gefragt, woher PB das ParentWindow nimmt, weil normalerweise so ist, dass die modal-Einstellung optional ist. (Z.B. bei WinAPI)
Daraufhin wollte ich mit Hilfe meiner Beispielcodes den Unterschied zeigen, dass er das derzeit aktive Fenster, welches sich im Vordergrund befindet, als ParentWindow nimmt. (MsgBox-Titelleiste blinkt dann dreimal, wenn man auf das ParentWindow klickt.)
Ups ja stimmt, funktioniert bei mir aber auch ohne Minimize-Flag.
Bezüglich deiner Verständnisfrage: Das extra Thema ging ab hier los: http://www.purebasic.fr/german/viewtopi ... 02#p304102
Die Frage lautete, warum die MsgBox standardmäßig modal zum aktiven Fenster wird, welches sich im Vordergrund befindet. D.h. du musst die MsgBox erst wegklicken und erst dann kannst du das Fenster, welches noch aktiv war, weiterverwenden.
DargDragon hat sich dann gefragt, woher PB das ParentWindow nimmt, weil normalerweise so ist, dass die modal-Einstellung optional ist. (Z.B. bei WinAPI)
Daraufhin wollte ich mit Hilfe meiner Beispielcodes den Unterschied zeigen, dass er das derzeit aktive Fenster, welches sich im Vordergrund befindet, als ParentWindow nimmt. (MsgBox-Titelleiste blinkt dann dreimal, wenn man auf das ParentWindow klickt.)
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Repaint (Flackern) bei Shift, ist das normal?
Blöd, dass das von OS zu OS so unterschiedlich ist. Ich finde es bei mir dann aber logischer.RSBasic hat geschrieben:@NicTheQuick
Ups ja stimmt, funktioniert bei mir aber auch ohne Minimize-Flag.
Blinken tut hier gar nichts. Wieder ein Unterschied.(MsgBox-Titelleiste blinkt dann dreimal, wenn man auf das ParentWindow klickt.)
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
Re: Repaint (Flackern) bei Shift, ist das normal?
@RSBasic,
nee, das Thema ging ganz oben los, da war von Requestern ÜBERHAUPT keine
Rede. Sondern, "Warum flackert das ganze Fenster, wenn ich mit der Shift (Strg, Alt ...)-Taste
in einem Stringgadget eine Eingabe mache". Man sollte die Themen nicht immer
zu Multi-Themen werden lassen.
@3BO,
richtig, bei 4.51 passiert nüscht, bei 4.60 auch noch nicht, erst ab 4.61
Gruß Jens
nee, das Thema ging ganz oben los, da war von Requestern ÜBERHAUPT keine
Rede. Sondern, "Warum flackert das ganze Fenster, wenn ich mit der Shift (Strg, Alt ...)-Taste
in einem Stringgadget eine Eingabe mache". Man sollte die Themen nicht immer
zu Multi-Themen werden lassen.
@3BO,
richtig, bei 4.51 passiert nüscht, bei 4.60 auch noch nicht, erst ab 4.61
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
Re: Repaint (Flackern) bei Shift, ist das normal?
@sharkpeter
Sag es nicht mir, ich habe damit nicht angefangen.
Sag es nicht mir, ich habe damit nicht angefangen.

