hwnd = OpenWindow(0,100,100,400,400,#PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 10000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
Next a
;- Event loop
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
Und wie bekomme ich es hin, dass er sofort angezeigt wird?
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
hwnd = OpenWindow(0,100,100,400,400,#PB_Window_Invisible | #PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 10000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
Next a
While WindowEvent() : Wend
HideWindow(0, #False)
;- Event loop
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
zu 1: Weil Windows erst bei erreichen der Mainloop Gelegenheit kriegt, das zu refreshen!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Verstecken ist ja ein netter Trick, aber nicht unbedingt praktikabel.
Gibt es den einen Weg das Refresh zu "erzwingen"?
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
Und wenn du das ohne die WindowEvent moglichkeit machen möchtest wie TS es gezeigt hat geht auch noch die möglichkeit per API und der Funktion UpdateWindow_().
hwnd = OpenWindow(0,100,100,400,400,#PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 10000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
UpdateWindow_(GadgetID(0))
Next a
;- Event loop
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
Ich persönlich habe die möglichkeit von mir lieber da die sache mit dem WindowEvent eher so ne art Notlösung ist wobei UpdateWindow_() ja dafür direkt gedacht ist.
Ist natürlich jedem selber überlassen.
Gruß,
Nico
Zuletzt geändert von nicolaus am 03.11.2005 19:52, insgesamt 1-mal geändert.
Alles andere Funktioniert ja auch erst, nachdem eine Event-Schleife exisitiert, ohne diese kann Windows nichts aktualisieren.
//Nachtrag: Nicos Möglichkeit hab ich nicht bedacht, bringt aber auch keine Vorteile, sondern erfordert API und ist nicht Plattformübergreifend
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
hwnd = OpenWindow(0,100,100,400,400,#PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 1000000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
UpdateWindow_(GadgetID(0))
WindowEvent()
Next a
;- Event loop
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
genau, und bei meiner ersten Lösung ist die CPU Last von 100% am kürzesten!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
hwnd = OpenWindow(0,100,100,400,400,#PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 100000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
UpdateWindow_(GadgetID(0))
WindowEvent()
Sleep_(1)
Next a
;- Event loop, nur damit das Fenster geöffnet bleibt.
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
ExamineDesktops()
hwnd = OpenWindow(0,DesktopWidth(0),100,400,400, #PB_Window_SystemMenu,"ListView")
CreateGadgetList(hwnd)
ListViewGadget(0,10,10,380,380)
;- add ListView entries
For a = 1 To 10000
AddGadgetItem(0,-1,"ListView Line "+Str(a))
Next a
While WindowEvent() : Wend
MoveWindow(100, 100)
;- Event loop
While WaitWindowEvent() <> #PB_EventCloseWindow : Wend
End
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.