Aktuelle Zeit: 23.09.2018 04:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Forumsregeln


Die Forumsregeln lesen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: #PB_Event_Repaint MenuBug
BeitragVerfasst: 12.09.2018 03:24 
Offline

Registriert: 12.07.2006 13:30
Hallo @ll,

ich bin gerade über einen Bug gestolpert und möchte euch kurz ein Info dazu da lassen da ich doch einwenig gebraucht habe um herauszubekommen wann es genau zum Verhalten kommt und wie man es umschiffen kann.

Bug Beschreibung:
Das Event Repaint wird nicht immer aufgerufen beim klick auf den "Maximize" Button (obenrechts in der Titelleiste des Fensters) wenn das Fenster selbst gerade maximized ist. Also simpler ausgedrückt, oft gibt es kein Repaint wenn man das Fenster mximized und dann gleich wieder kleiner macht über den maximizeButton.

Das Event wird nur oft beim wieder kleiner machen nicht ausgelöst. Beim vergrößern geht es immer.

Fehler ist reproduzierbar mit folgendem CodeBeispiel (PBVersion 5.62, 5.61 - Win x86):
Code:
counter = 0 ; zur Übersichtlichkeit

#__Main__ = 0
If OpenWindow(#__Main__,0,0,800,600,"#PB_Event_Repaint BUG",#PB_Window_TitleBar|#PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 
  If CreateMenu(0, WindowID(#__Main__))
    MenuTitle("Program")
      MenuItem(0,"close")
  EndIf
   
  Repeat
    __event__ = WaitWindowEvent()
    If __event__
      Select __event__
        Case #PB_Event_Repaint
          counter = counter+1
          Debug Str(counter)+") #PB_Event_Repaint"
        Case #PB_Event_CloseWindow
          CloseWindow(EventWindow()):End
      EndSelect
    EndIf
  ForEver
EndIf


eventueller Auslöser des Problems?:
Im obigen Code tritt das Problem nicht mehr auf wenn das Menu entfernt wird.

Problem Lösung für mich:
PB_Window_SizeGadget muss gesetzt werden damit das RepaintEvent immer mittels "maximized" Button funktioniert

CodeBeispiel ohne Fehler und ohne Menu zu entfernen (PBVersion 5.62, 5.61 - Win x86):
Code:
counter = 0 ; zur Übersichtlichkeit

#__Main__ = 0
If OpenWindow(#__Main__,0,0,800,600,"#PB_Event_Repaint BUG",#PB_Window_TitleBar|#PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
 
  If CreateMenu(0, WindowID(#__Main__))
    MenuTitle("Program")
      MenuItem(0,"close")
  EndIf
   
  Repeat
    __event__ = WaitWindowEvent()
    If __event__
      Select __event__
        Case #PB_Event_Repaint
          counter = counter+1
          Debug Str(counter)+") #PB_Event_Repaint"
        Case #PB_Event_CloseWindow
          CloseWindow(EventWindow()):End
      EndSelect
    EndIf
  ForEver
EndIf


Mein Arbeitsumgebung:
(PBVersion 5.62, 5.61 - Win 10 pro x86)

Ich hoffe ich konnte das Problem ausreichend erklären :| ist schon ziehmlich spät :coderselixir:
:lurk:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #PB_Event_Repaint MenuBug
BeitragVerfasst: 12.09.2018 08:02 
Offline

Registriert: 26.11.2017 16:17
Dein Fehlerbeispiel funktioniert bei mir ohne Fehler.
Windows 7 64-Bit, PB 5.70b1 x86
Der Zähler wird richtig hochgezählt. Nur beim Minimieren gibt es kein Repaint-Ereignis, was auch Sinn ergibt.

Peter


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye