Seite 1 von 1

Panelgadget: Button verschwinden vom Display

Verfasst: 02.05.2006 20:35
von harus
Auch ich bin hier neu und versuche mich in PB einzudenken.
Bei PanelGadget bin ich auf ein Verhalten gestossen, das ich mir nicht erklären kann:
Bis nach PanelGatget wird Knopf 3+4 angezeigt.
mit AddGadget verschwindet Knopf 3 und Knopf 5 wird nicht angezeigt. Was habe ich falsch gemacht ?

Code: Alles auswählen

Window-Varriable:
  Qwin_ini.l = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget ;13303808
            
Windowstart:
    Qwin     = OpenWindow(1, 150, 250, 600, 350, QWIN_ini, "panelgadget-Test")
      If Qwin=0                                                   ; Win-ID-Nummer
              MessageRequester("Error", "Window-Open "+Str(QWIN), 0)
      EndIf

Gadget:
    Qgad = CreateGadgetList(Qwin)
      If Qgad=0  : MessageRequester("Error ", "Gadget create "+Str(Qgad), 0)  : EndIf
 
    ButtonGadget(5, 30, 10, 120, 20, "Knopf 3")
    ButtonGadget(6, 30, 300, 120, 20, "Knopf 4")
                                                                 
Panel:
    PanelGadget(90, 30, 30, 580, 250)
                                                                  MessageRequester("Test", "Knopf 3+4", 0)             
Button:
    AddGadgetItem(90, 0, " Auswahl ")      
    ButtonGadget(1, 30, 60, 120, 20, "Knopf 1")
    ButtonGadget(2, 160, 60, 120, 20, "Knopf 2")

CheckBox:
    AddGadgetItem(90, 1, " Eingabe ")
    CheckBoxGadget (3, 330, 60, 120, 20, "CheckBox 2")
    CheckBoxGadget (4, 460, 60, 120, 20, "CheckBox 2")

                                                        
    ButtonGadget(5, 30, 300, 120, 20, "Knopf 5")
                                                                  MessageRequester("Test", "Knopf5 ", 0)
;-----------------------------------------------------------------------------------------------------------------
INPUT:

  Repeat
    EventID = WaitWindowEvent()
         
    If EventID = #PB_EventGadget         
      Select Qgad_Inp
        Case 0
          If EventType() = #PB_EventType_ReturnKey
            MessageRequester("Info", "Return key pressed", 0)
          EndIf   
      EndSelect
    EndIf
  Until EventID = #PB_EventCloseWindow

End 


Verfasst: 02.05.2006 20:39
von Macros
Diese beiden Buttons:

Code: Alles auswählen

ButtonGadget(5, 30, 10, 120, 20, "Knopf 3")
    ButtonGadget(5, 30, 300, 120, 20, "Knopf 5")
haben die gleiche ID,
und somit überschreibt der zweite den ersten.

Verfasst: 02.05.2006 21:26
von harus
Danke Marcos, das war's. <)

Verfasst: 03.05.2006 00:43
von Mr.X
An dieser Stelle ein kurzer Einwurf meinerseits:

Verwendet für die Gadget-Nummern doch einfach beschreibende Konstanten, also einfach statt

Code: Alles auswählen

StringGadget(0, x, y, w, h, text [, flags])
StringGadget(0, x, y, w, h, text [, flags])
besser

Code: Alles auswählen

enumeration
  #GadgetName
  #GadgetVorname
endenumeration
[...]
StringGadget(#GadgetName, x, y, w, h, text [, flags])
StringGadget(#GadgetVorname, x, y, w, h, text [, flags])
so gibts auch garantiert kein Chaos mit doppelt belegten Gadget-Nummern.

Wenn ihr eine weiteres Gadget hinzufügt, die beschreibende Konstante einfach ein die Enumeration-Liste einfügen und die Fehlerquelle ist beseitigt.

In diesem Sinne
Mr.X