<klugscheiss>xperience2003 hat geschrieben:hoere das mit dem schleifen zeug zum ersten mal
ist ja auch keine Schleife. Ist 'ne Abfrage
</klugscheiss>
jo, hast rechtist ja auch keine Schleife. Ist 'ne Abfrage
Code: Alles auswählen
InitSprite()
Breite=300 : Hoehe=200
OpenWindow(0,0,0,Breite,Hoehe,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,Breite,Hoehe,0,0,0)
AddKeyboardShortcut(0,#PB_Shortcut_Escape,#PB_Shortcut_Escape)
Repeat : Event=WaitWindowEvent()
If Event=#PB_Event_Menu : Taste=EventMenu()
If Taste=#PB_Shortcut_Escape
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,"Esc wurde gedrückt",RGB(255,0,0)) ;DrawStuff()
StopDrawing()
SetClipboardText("kurz vor FlipBuffers()"+Chr(10)) ;letzte Aktion vor dem Hänger
FlipBuffers() ;<================ hier hängt es
SetClipboardText("nach FlipBuffers()"+Chr(10))
Delay(1000) ;1 Sek. warten
ClearScreen(0) ;und dann Screen wieder leeren
FlipBuffers()
EndIf
EndIf
Until Event=#PB_Event_CloseWindow
End
Code: Alles auswählen
InitSprite()
Breite=300 : Hoehe=200
OpenWindow(0,0,0,Breite,Hoehe,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,Breite,Hoehe,0,0,0)
AddKeyboardShortcut(0,#PB_Shortcut_Escape,#PB_Shortcut_Escape)
Repeat : Event=WaitWindowEvent(100)
If Event=#PB_Event_Menu : Taste=EventMenu()
If Taste=#PB_Shortcut_Escape
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,"Esc wurde gedrückt",RGB(255,0,0)) ;DrawStuff()
StopDrawing()
SetClipboardText("kurz vor FlipBuffers()"+Chr(10)) ;letzte Aktion vor dem Hänger
FlipBuffers() ;<================ hier hängt es
SetClipboardText("nach FlipBuffers()"+Chr(10))
Delay(1000) ;1 Sek. warten
ClearScreen(0) ;und dann Screen wieder leeren
EndIf
EndIf
FlipBuffers()
Until Event=#PB_Event_CloseWindow
EndCode: Alles auswählen
FlipBuffers(#PB_Screen_NoSynchronization)

Das ist in kein Bug, sondern einfach so gewollt. Die Messagebox soll das Programm anhalten. Sollte es nötig sein, daß eine Nachricht angezeigt wird, aber trotzdem ein weiterer Programmablauf nötig ist, kannst zB. eine eigene MessageBox bauen. Öffne ein kleines Fenster mit einem Textgadget, indem die Meldung angezeigt wird und mit einem oder mehreren Buttons zum bestätigen.... dass ich mich als Nekrophiler betätigen muss, aber ich bin auf dasselbe Problem gestoßen als ich über einen WindowedScreen eine Messagebox mit Benchmarkergebnisen aufgerufen habe. Da Messagebox ja alles blockiert, kann ich auch nicht mit FlipBuffers() den screen refreshen, also wenn die MessageBox ein paar Minuten da steht, blockiert das Programm unweigerlich nach so ca. 15 Minuten.
Da ich die Informationen manchmal abschreiben und vergleichen will, ist es ein schwerer Bug.
Ne, das ist ja nicht gemeint. Es geht darum das FlipBuffers das Programm anhält, nachdem die MessageBox geschlossen wurde.THEEX hat geschrieben: Das ist in kein Bug, sondern einfach so gewollt. Die Messagebox soll das Programm anhalten. Sollte es nötig sein, daß eine Nachricht angezeigt wird, aber trotzdem ein weiterer Programmablauf nötig ist, kannst zB. eine eigene MessageBox bauen. Öffne ein kleines Fenster mit einem Textgadget, indem die Meldung angezeigt wird und mit einem oder mehreren Buttons zum bestätigen.

Das versteh ich aber anders....Da Messagebox ja alles blockiert, kann ich auch nicht mit FlipBuffers() den screen refreshen, also wenn die MessageBox ein paar Minuten da steht, blockiert das Programm unweigerlich nach so ca. 15 Minuten
Im Kontext zu diesem Thread ist es aber klar was er meint. Und zwar das, wenn die MessageBox ca. 15 Minuten offen bleibt, also die Programmausführung anhält, dann hängt sich FlipBuffers auf nach dem Schließen der MessageBox. Genau das gleiche Problem hatte ja der Threadersteller.THEEX hat geschrieben:@Thorium
Da steht aberDas versteh ich aber anders....Da Messagebox ja alles blockiert, kann ich auch nicht mit FlipBuffers() den screen refreshen, also wenn die MessageBox ein paar Minuten da steht, blockiert das Programm unweigerlich nach so ca. 15 Minuten

Exakt so ist es auch gemeint. Tut mir leid dass ich nicht dazugeschrieben habe dass das Programm erst blockiert nachdem ich zum normalen Programmablauf zurückkehren will, aber ich dachte dass das bei dem Thread klar ist. Also: Ich will die MessageBox nach ein paar Minuten schlieben und dabei blockiert sich das ganze Programm.Thorium hat geschrieben:Im Kontext zu diesem Thread ist es aber klar was er meint. Und zwar das, wenn die MessageBox ca. 15 Minuten offen bleibt, also die Programmausführung anhält, dann hängt sich FlipBuffers auf nach dem Schließen der MessageBox. Genau das gleiche Problem hatte ja der Threadersteller.THEEX hat geschrieben:@Thorium
Da steht aberDas versteh ich aber anders....Da Messagebox ja alles blockiert, kann ich auch nicht mit FlipBuffers() den screen refreshen, also wenn die MessageBox ein paar Minuten da steht, blockiert das Programm unweigerlich nach so ca. 15 Minuten