Seite 1 von 1

Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 03.03.2021 23:59
von Delle
Hallo,

ich habe auf einer GUI diverse Buttons, Text usw.

Alles wird soweit anzeigt, außer z.B. dieses Combo nicht:

Code: Alles auswählen

    
  ComboBoxGadget(#Monat, 85, 165, 60, 21)
AddGadgetItem(#Monat, -1, "alle")
    For k = 1 To 12:AddGadgetItem(#Monat, -1, RSet(Str(k),2,"0")):Next
    SetGadgetState(#Monat, 0)
Das taucht erst auf der GUI, wenn man an dessen Position mit der Maus drüberfährt.

Ein While WindowEvent():Wend habe ich vor der eigentlichen Programmschleife hingemacht, bringt aber auch nichts.

Wo liegt der Fehler?

Dankeee!

Re: Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 04.03.2021 01:25
von Axolotl
Hi Delle,

an den Zeilen kann ich keinen Fehler erkennen.
Die Fehler-Beschreibung deutet darauf hin, dass das Control von einem anderen teilweise übermalt wird.

Kannst Du bitte den (ganzen) funktionierenden Code zeigen?

Re: Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 04.03.2021 16:56
von Delle
Axolotl hat geschrieben:Hi Delle,

an den Zeilen kann ich keinen Fehler erkennen.
Die Fehler-Beschreibung deutet darauf hin, dass das Control von einem anderen teilweise übermalt wird.

Kannst Du bitte den (ganzen) funktionierenden Code zeigen?
Gerne:

Code: Alles auswählen

Enumeration
  
  #Monat
  #Jahr
  
 
  #Button_Buchung
  #Button_OffenePosten
  #Button_LaufenderMonat
 
  
EndEnumeration



OpenWindow(0,0,0,980,850,"", #PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
      
If LoadFont(0, "Verdana", 10):SetGadgetFont(#PB_Default, FontID(0)):EndIf

ButtonGadget(#Button_Buchung,15,15,150,30,"Neue Buchung")
ButtonGadget(#Button_OffenePosten,15,55,150,30,"Offene Posten")
ButtonGadget(#Button_LaufenderMonat,15,95,150,30,"Laufender Monat")

FrameGadget(#PB_Any,15,135,150,155," Detailsuche ")

  TextGadget(#PB_Any,30,165,150,30,"Monat")

  ComboBoxGadget(#Monat, 85, 165, 60, 21)
    AddGadgetItem(#Monat, -1, "alle")
    For k = 1 To 12:AddGadgetItem(#Monat, -1, RSet(Str(k),2,"0")):Next
    SetGadgetState(#Monat, 0)
    
    TextGadget(#PB_Any,30,195,150,30,"Jahr")
    ComboBoxGadget(#Jahr, 85, 195, 60, 21)
    
    
    For j = Val(FormatDate("%yyyy", Date())) To 2015 Step -1:AddGadgetItem(#Jahr, -1, Str(j)):Next
    SetGadgetState(#Jahr, 0)
    
    
    While WindowEvent():Wend
  
  

 
  
Repeat

  EventID=WaitWindowEvent()
  
  If EventID=#PB_Event_Gadget And EventType()=#PB_EventType_Change
    
    Select EventGadget()
    EndSelect
    
  EndIf
  

Until EventID=#PB_Event_CloseWindow

Re: Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 04.03.2021 17:29
von Bisonte
Axolotl hat recht. Die Textgadgets überlappen die anderen Gadgets....

Re: Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 04.03.2021 18:50
von Delle
Bisonte hat geschrieben:Axolotl hat recht. Die Textgadgets überlappen die anderen Gadgets....
Stimmt, aber die TextGadgets werden doch *vorher* platziert? Und die anderen Gadgets wenn dann doch eher "draufgesetzt"?

Also "früher" ging sowas auch...

Oder hat evtl. #PB_Any einfach eine zu hohe ID bekommen und "liegt" daher ÜBER den Enum-Combos?

Re: Gadget erst bei überfahren mit Maus sichtbar

Verfasst: 04.03.2021 19:16
von STARGÅTE
Die Gadgets in PB haben keine fest definierte z-Sortierung, egal welches Gadget welche Nummer hat oder wann erstellt wurde. Daher ist eine Überlappung stets zu vermeiden.
Zum anderen werden Gadgets früher oder später eh neu gezeichnet und spätestens dann wird die Reihenfolge durch das Überzeichnen wieder zunichte gemacht.