DisableMenuItem-Bug

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

DisableMenuItem-Bug

Beitrag 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
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du verwendest ja die MenuItemID doppelt, das kann ja nicht gehen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Zuletzt geändert von Kaeru Gaman am 18.10.2008 19:59, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Was sollte das für einen Sinn machen :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ergeben, nicht machen. :twisted:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Wer soll sich ergeben, John?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wer ist John Sinn?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Beitrag 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:
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Antworten