Seite 1 von 1

Ist es möglich, einem Fenster zwei Menüs zu geben?

Verfasst: 13.04.2014 10:50
von es_91
Hallo.

In der PB-Hilfe steht nichts davon drin, dass man einem Fenster nicht auch zwei Menüs zuordnen kann. Natürlich kann immer nur eins angezeigt werden, das leuchtet ein. Aber ein Wechsel zwischen zwei Menüs, jeweils eins davon sichtbar, schlägt in diesem Beispiel fehl:

Code: Alles auswählen


Window = OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 800, 400, "Mein Fensterchen", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)

MenuB = CreateMenu(#PB_Any, WindowID(Window))
MenuTitle("Netzwerk")
MenuItem(31, "Offline-Modus")

HideMenu(MenuB, #True)

Menu = CreateMenu(#PB_Any, WindowID(Window))
MenuTitle("Netzwerk")
MenuItem(30, "Netzwerkverbindung herstellen")
MenuBar()
MenuItem(31, "Offline-Modus")
SetMenuItemState(Menu, 31, #True)
DisableMenuItem(Menu, 31, #True)

Repeat
  
  Select WaitWindowEvent()
      
    Case #PB_Event_CloseWindow
      
      Break
      
    Case #PB_Event_Menu
      
      Select EventMenu()
          
        Case 30
          
          If InitNetwork()
            HideMenu(Menu, #False)
            HideMenu(MenuB, #True)
            OfflineMode = #False
          Else
            Gosub Error_On_Network
          EndIf
          
        Case 31
          
          HideMenu(Menu, #True)
          HideMenu(MenuB, #False)
          OfflineMode = #True
          
      EndSelect
      
  EndSelect
    
ForEver

End

Error_On_Network:
MessageRequester("", "Es konnte keine Internetverbindung gefunden werden.", #MB_ICONERROR)

Return
Der Beispielcode soll das Menü switchen, wenn die Netzwerkverbindung mit Item 30 hergestellt wurde.

Also: Geht das überhaupt? Oder muss ich doch "das eine" Menü bearbeiten?

Re: Ist es möglich, einem Fenster zwei Menüs zu geben?

Verfasst: 13.04.2014 10:54
von es_91
Ah... sry.

So geht's:

Code: Alles auswählen

      Select EventMenu()
         
        Case 30
         
          If InitNetwork()
            HideMenu(Menu, #True)
            HideMenu(MenuB, #False)
            OfflineMode = #False
Mein Fehler. :freak:

/EDIT: Beantrage auf Grund solider Massenuntauglichkeit die Löschung dieses threads! :lol:

Re: Ist es möglich, einem Fenster zwei Menüs zu geben?

Verfasst: 13.04.2014 12:42
von NicTheQuick
Nein. Der Thread bleibt. Er enthält ja trotzdem eine korrekte Antwort.