Seite 1 von 1

DisableMenuItem-Bug

Verfasst: 18.10.2008 16:54
von Regenduft
Ich glaube, ich habe da 'nen kleinen Bug in DisableMenuItem() gefunden (PB4.30 Beta 3).
PureBasic-Doku hat geschrieben:Deaktiviert oder aktiviert im '#Menue' alle Menüeinträge mit der 'MenueEintrag' Nummer.
Tatsächlich wird aber nur der erste Eintrag mit der 'MenueEintag' Nummer aktiviert oder deaktiviert.

Code: Alles auswählen

If OpenWindow(0, 100, 100, 100, 100, "DisableMenuItem-Bug")
  ButtonGadget(0, 0, 0, 100, 100, "Disable Menu", #PB_Button_Toggle)
  If CreatePopupMenu(0)
    MenuItem(1, "1 A")
    MenuItem(1, "1 B")
    MenuItem(2, "2 A")
    MenuItem(2, "2 B")
    MenuItem(3, "3 A")
    MenuItem(3, "4 B")
  EndIf

  Repeat

    Event = WaitWindowEvent()

    If Event = #PB_Event_Gadget
      If EventGadget() = 0
        DisableMenuItem(0, 1, GetGadgetState(0))
        DisableMenuItem(0, 2, GetGadgetState(0))
        DisableMenuItem(0, 3, GetGadgetState(0))
      EndIf
    EndIf

    If GetAsyncKeyState_(#VK_RBUTTON)
      DisplayPopupMenu(0, WindowID(0))
    EndIf

  Until Event = #PB_Event_CloseWindow

EndIf

Verfasst: 18.10.2008 19:51
von ts-soft
Du verwendest ja die MenuItemID doppelt, das kann ja nicht gehen.

Verfasst: 18.10.2008 19:56
von Kaeru Gaman
... dann ist aber die Hilfe fehlerhaft formuliert ...

> Deaktiviert oder aktiviert im '#Menue' alle Menüeinträge mit der 'MenueEintrag' Nummer.
impliziert dass es mehr als einen mit der Nummer geben kann.

PS:
yo, eindeutig ein Übersetzungsfehler.

de: http://www.purebasic.com/german/documen ... uitem.html

en: http://www.purebasic.com/documentation/ ... te]Disable (or enable) the #Menu item with the 'MenuItem' number.[/quote]Singular

Verfasst: 18.10.2008 19:58
von ts-soft
Was sollte das für einen Sinn machen :freak:

Verfasst: 18.10.2008 20:00
von Kaeru Gaman
ergeben, nicht machen. :twisted:

Verfasst: 18.10.2008 21:56
von Sven
Wer soll sich ergeben, John?

Verfasst: 18.10.2008 22:02
von Kaeru Gaman
wer ist John Sinn?

Verfasst: 31.10.2008 20:34
von Regenduft
Ist zwar schon länger her aber...
ts-soft hat geschrieben:Was sollte das für einen Sinn machen
Ersmal kräftig an den Fingern saugen :wink:
Wenn man (z.B.) ein weit und tief verzweigtes Menü hat, könnten redundante Unterpunkte praktisch sein. In der Auswertung wäre es dann auch einfacher, sollten diese die gleiche Nummer haben (ähnlich wie bei Shortcuts). Sinnvoll wäre es dann natürlich auch alle zusammen "disablen" zu können!

Das mit der Auswerung funktioniert ja:

Code: Alles auswählen

If OpenWindow(0, 100, 100, 100, 100, "Mehrfache MenuItemIDs") 
  If CreatePopupMenu(0) 
    MenuItem(1, "1 A") 
    MenuItem(1, "1 B") 
    MenuItem(2, "2 A") 
    MenuItem(2, "2 B") 
    MenuItem(3, "3 A") 
    MenuItem(3, "4 B") 
  EndIf 

  Repeat 

    Event = WaitWindowEvent() 

    If Event = #PB_Event_Menu
      Debug EventMenu()
    EndIf
    
    If GetAsyncKeyState_(#VK_RBUTTON) 
      DisplayPopupMenu(0, WindowID(0)) 
    EndIf 

  Until Event = #PB_Event_CloseWindow 

EndIf
Does that make sense? ...immer diese Anglizismen... Machen kann man nur Unsinn. :wink: