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.