Hallo Thomas,
Alle Controls erzeugen ein Size Event, ComboBox aber 2, weils aus
mehreren Elementen besteht
So wie ich das sehe erzeugen folgende Controls nur zusammen ein Size Event,egal wie viele ich davon erstelle:
Code: Alles auswählen
TextGadget(2,50,40,70,21,"...")
OptionGadget(3,50,70,70,21,"...")
ButtonGadget(4,50,130,70,21,"...")
HyperLinkGadget(5,50,160,70,21,"...",RGB(0,0,0))
StringGadget(6,50,190,70,21, "..")
Wobei hingegen jedes ComboBoxGadget jeweils ein Size Event auslöst. Somit lösen zwei ComboBoxGadget zwei Size Events aus, drei comboboxgadgets drei Size Events etc.
Dieser Code erzeugt bei mir genau ein Size Event, egal wieviele TextGadgets, StringGadgets usw. ich erstelle:
Code: Alles auswählen
If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window",#PB_Window_Invisible|#PB_Window_SystemMenu)
;;Erzeugt ein "SizeWindow" event
;ComboBoxGadget(1,50,10,70,21)
;;Erzeugt ein "SizeWindow" event
;ComboBoxGadget(7,50,10,70,21)
;;Erzeugt ein "SizeWindow" event
;ComboBoxGadget(8,50,10,70,21)
;;Erzeugt ein "SizeWindow" event
;ComboBoxGadget(9,50,10,70,21)
;Erzeugt KEIN "SizeWindow" event
TextGadget(2,50,40,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
OptionGadget(3,50,70,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
ButtonGadget(4,50,130,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
HyperLinkGadget(5,50,160,70,21,"...",RGB(0,0,0))
;Erzeugt KEIN "SizeWindow" event
StringGadget(6,50,190,70,21, "..")
HideWindow(0, 0)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
ElseIf Event=#PB_Event_SizeWindow
Debug "Ausgeführt"
EndIf
Until Quit = 1
EndIf
End
Wobei hingegen folgender Code
Code: Alles auswählen
If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window",#PB_Window_Invisible|#PB_Window_SystemMenu)
;Erzeugt ein "SizeWindow" event
ComboBoxGadget(1,50,10,70,21)
;Erzeugt ein "SizeWindow" event
ComboBoxGadget(7,50,10,70,21)
;Erzeugt ein "SizeWindow" event
ComboBoxGadget(8,50,10,70,21)
;Erzeugt ein "SizeWindow" event
ComboBoxGadget(9,50,10,70,21)
;Erzeugt KEIN "SizeWindow" event
TextGadget(2,50,40,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
OptionGadget(3,50,70,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
ButtonGadget(4,50,130,70,21,"...")
;Erzeugt KEIN "SizeWindow" event
HyperLinkGadget(5,50,160,70,21,"...",RGB(0,0,0))
;Erzeugt KEIN "SizeWindow" event
StringGadget(6,50,190,70,21, "..")
HideWindow(0, 0)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
ElseIf Event=#PB_Event_SizeWindow
Debug "Ausgeführt"
EndIf
Until Quit = 1
EndIf
End
bei mir fünfmal das Size Event direkt hintereinander ausgeführt wird (1 normaler + 4 für jedes Comboboxgadget. Dies geschieht jedoch nur beim Programmstart, wo ich die Gadgets erstelle. Da ich aber circa 150 Comboboxgadgets erstelle wird Sizegadget zu beginn auch 151 mal ausgeführt. Das Flckern entsteht bei mir, weil ich mit dem Size Event sämtliche Controls resize.
Das profane Einfügen von While WindowEvent() : Wend hilft da aber auch nicht.
Gruß Florian