Seite 1 von 1

ListViewGadget-Refresh

Verfasst: 05.11.2006 15:48
von Werner
Hallo PureBasic-Gemeinde,

ich benutze ListViewGadget, um z.B. Dateien in einer Schleife einzulesen.
Bis alle Dateien gefunden werden dauert das natürlich eine Weile.
Mein Problem ist nun, dass ich die lfd. Einträge im ListViewGadget nicht darstellen kann. Erst wenn die Schleife durchlaufen ist bekomme ich den kompletten Inhalt der ListViewGadget. Auch ein "Delay" hilft nicht.
Hat jemand eine Idee untenstehendes Beispiel dahin abzuändern, dass der Zuwachs der Einträge sichtbar wird?

Code: Alles auswählen

 If OpenWindow(0, 0, 0, 270, 140, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    ListViewGadget(0, 10, 10, 250, 120)
    For a = 1 To 12
      AddGadgetItem (0, -1, "Item " + Str(a) + " of the Listview")   ; definieren des Listview-Inhalts
      Delay (100)
    Next
    SetGadgetState(0, 9)    ; wir setzen (beginnend bei 0) den zehnten Eintrag als aktiven
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
_________________________________________
PB4.0 / WXP

Verfasst: 05.11.2006 15:54
von winduff
Das Problem ist das das Fenster im Code nicht aktualisiert wird, bis alles fertig ist.

Versuch es mal mit Threads (F1-Hilfe), wäre in dem Fall das Sinnvollste.

Gleich kommt Thomas und haut mich mit ner guten Idee weg, aber gut ein versuch :mrgreen:

Verfasst: 05.11.2006 16:06
von ts-soft

Code: Alles auswählen

If OpenWindow(0, 0, 0, 270, 140, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    ListViewGadget(0, 10, 10, 250, 120)
    For a = 1 To 12
      AddGadgetItem (0, -1, "Item " + Str(a) + " of the Listview")   ; definieren des Listview-Inhalts
      Delay (100)
      While WindowEvent() : Wend
    Next
    SetGadgetState(0, 9)    ; wir setzen (beginnend bei 0) den zehnten Eintrag als aktiven
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf 

Verfasst: 05.11.2006 16:09
von edel
:o , das war Absicht oder ?

Code: Alles auswählen

  hwnd = OpenWindow(0, 0, 0, 270, 140, "ListViewGadget") 
  
  CreateGadgetList(hwnd)
  
  ListViewGadget(0, 10, 10, 250, 120)
  
  timeout = 50 ; jede n millisekunde aktualisieren
  
  Repeat 
    event = WaitWindowEvent(timeout) 
    
    If event = 0 ; wenn nichts zu tun ist
      If Not a = 10000 ; damit man auch mal was sieht :D
        a = a + 1
        AddGadgetItem (0, #PB_Default, "Item " + Str(a) + " of the Listview")
      Else
        SetGadgetState(0, 9)
        timeout = #PB_Default ; timeout austellen
      EndIf
    EndIf
    
  Until event = #PB_Event_CloseWindow
ts ist doof ;D

ListViewGadget-Refresh

Verfasst: 05.11.2006 17:38
von Werner
@ts-soft / edel

Danke für Eure Beiträge!
Ihr habt mir sehr geholfen!
:-)

Grüße
Werner