Seite 1 von 2

gadgets freigeben

Verfasst: 25.08.2005 12:01
von sobi
Hi,

ne doofe Frage (zumindest nach meinem Geschmack)
Ich habe ein Programm mit einer Menüleiste. Wenn ich jetzt ein Untermenü öffne, ist das kein Problem, jetzt habe ich ein zweites Untermenü erstellt und wenn ich zuerst das eine, dann das andere öffne, dann zeigt es alle Gadgets an. (löscht also nicht die einen aus dem ersten Menü)
Woran liegt das, muss ich alle Gadgetnummer einzeln löschen?

Ich habe jeweils verschiedene Gadgetnummer. - War das vielleicht ein Fehler?

LG

Simon

Verfasst: 25.08.2005 12:29
von Pelagio
@ sobi

Könntest du bitte deine Frage etwas präziser formulieren, ich glaube ich bin zu doof aber ich habe sie nicht verstanden.
Du hast ein Menü mit einem Untermenü und in diesem Untermenü noch ein Untermenü.
Öffnest du jetzt das Menü dann zeigt es Gadget's an ?
Welche Gadget's?
Gadget's im Menü ?

Verfasst: 25.08.2005 12:54
von sobi
Ich habe eine Menüleiste
wenn ich dort ein Menü anklicke zeigt es mir diese Seite an.
Wenn ich jetzt ein anderen Menüpunkt anklicke, bleibt die "alte Seite" (die ich zuerst aktiviert habe) da! und die neue wird dazu gezeichnet.

Die alten Gadgetes bleiben da und verschwinden nicht.

Verfasst: 25.08.2005 12:56
von Batze
Das wird wohl iregndwo am Code liegen oder?
Ohne den ist antworten reines Raten. :wink:

Verfasst: 25.08.2005 13:04
von PAMKKKKK
Poste mal deine Code!

Hier ist ein lauffähiges beispiel:

Code: Alles auswählen

  If OpenWindow(0, 200, 200, 220, 100, #PB_Window_SystemMenu, "SubMenu Example")
    If CreateMenu(0, WindowID())
      MenuTitle("Project") 
      MenuItem(1, "Open")  
      MenuItem(2, "Close")
      MenuBar()
      OpenSubMenu("Recent files")       ; beginne Erstellung des Unter-Menüs
      MenuItem( 3, "C:\Autoexec.bat")
      MenuItem( 4, "D:\Test.txt")
      CloseSubMenu()                    ; beende Unter-Menü
      MenuTitle("Test") 
      MenuItem(5, "Click")  
      MenuItem(6, "Clack")
      OpenSubMenu("More...")       ; beginne Erstellung des Unter-Menüs
      MenuItem( 7, "Money")
      MenuItem( 8, "Girls")
      CloseSubMenu()                    ; beende Unter-Menü
    EndIf
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf

Verfasst: 25.08.2005 13:16
von sobi
Hier ein Beispiel:

Wie bekomme ich den "Text 2" weg? (Die Lösung "mit gleichen Gadgetnummern" hilft mir leider nicht)

Code: Alles auswählen

  If OpenWindow(0, 200, 200, 420, 400, #PB_Window_SystemMenu, "SubMenu Example") 
    If CreateMenu(0, WindowID()) 
      MenuTitle("Project") 
      MenuItem(1, "Text1")  
      MenuItem(2, "Text2")  
    EndIf 


Repeat     
    EventID.l = WaitWindowEvent()
    WindowID = EventWindowID()
    If WindowID = 0
      Select EventID 
        Case #PB_Event_CloseWindow : Quit = #True 
       
        Case #PB_Event_Menu 
          Select EventMenuID()      
            Case 1
              CreateGadgetList(WindowID())
              TextGadget(1,55,55,30,16,"Text1")
            Case 2
              CreateGadgetList(WindowID())
              TextGadget(2,55,75,30,16,"Text2")
          EndSelect
        EndSelect
     EndIf
Until Quit = #True
EndIf

Verfasst: 25.08.2005 13:19
von Batze
Tus doch jeweils in ein Containergadget und zeig das richtige an.

Verfasst: 25.08.2005 13:21
von Lukaso
Gadgets kann man glaub ich wieder mit ...

Code: Alles auswählen

DestroyWindow_(GadgetID(#Bla))
... freigeben. Vll. hilft das auch hier :)

MFG Lukaso

Verfasst: 25.08.2005 13:23
von Batze
Ähämm, da gibts in PB FreeGadget(). :wink:

Verfasst: 25.08.2005 13:31
von sobi
Batze hat geschrieben:Ähämm, da gibts in PB FreeGadget(). :wink:
Dankeschön schonmal! Allerdings gibt es da eine Möglichkeit, dass alle Gadgets freigegeben werden? (ohne, einzelnen eintrag?)

LG
Simon