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

Für allgemeine Fragen zur Programmierung mit PureBasic.
es_91
Beiträge: 411
Registriert: 25.01.2011 04:48

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

Beitrag 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?
es_91
Beiträge: 411
Registriert: 25.01.2011 04:48

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

Beitrag 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:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
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: Ist es möglich, einem Fenster zwei Menüs zu geben?

Beitrag von NicTheQuick »

Nein. Der Thread bleibt. Er enthält ja trotzdem eine korrekte Antwort.
Antworten