Seite 1 von 4

[erledigt] Warum wird der LV-Aufbau verzögert ?

Verfasst: 17.12.2006 20:31
von scholly
Wenn ich dem Code das Gosub erlaube, dauert der Aufbau des Gadgets wesentlich länger als wenn ichs auskommentiere.

Code: Alles auswählen

DisableDebugger
If OpenWindow(0, 50, 50, 300, 600, "weekly charts", #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
  result = ListViewGadget(2, 10, 10, 280, 580)
  
  Gosub seitenholen
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  
Else
  MessageRequester("ooops", " Fenster oder Gadgetlist konnten nicht erstellt werden", 0)
EndIf

End

seitenholen:
;#########################################################################################
;{
  If URLDownloadToFile_(0,"http://www.mtvhome.de/hitlistgermany/index.php","d:\__incoming\4_p3\mtv_ger_100.html",0,0) = #S_OK
    AddGadgetItem(2,-1,"ger 100 geladen")
    Debug "ger 100 geladen"
  Else
    AddGadgetItem(2,-1,"ger 100 nicht geladen")
    Debug "ger 100 nicht geladen"
  EndIf
;}
  Return; seitenholen
Wo liegt der Fehler ?

irritiert..
scholly

Re: Warum wird der LV-Aufbau verzögert ?

Verfasst: 17.12.2006 21:34
von Kiffi
> Wo liegt der Fehler ?

ist das jetzt eine Fangfrage?

Grüße ... Kiffi

Re: Warum wird der LV-Aufbau verzögert ?

Verfasst: 17.12.2006 22:02
von scholly
Kiffi hat geschrieben:ist das jetzt eine Fangfrage?
Mitnichten.
Kann sein, daß ich zu doof bin, aber wenn ich NICHT ins Unterprogramm springe, wird das Listview sodort aufgebaut.
Wenn ich aber die Webseite downloade, dauerts erheblich und das dürfte vom Programmablauf IMHO nicht sein.
Im Unterprogramm stehen normalerweise 10 Chart-Seiten, sodaß ich es extrem merke.
Wenn ich dann noch den Debugger zulasse, steht der Output da drin, bevor das LV aufgebaut ist.
Versteh ich nich....

Verfasst: 17.12.2006 22:04
von a14xerus
ich verstehe dein Problem nicht.
Es ist doch klar, das es dauert bis alles runtergeladen ist.
was ist denn dadran komisch????

Verfasst: 17.12.2006 22:11
von ts-soft
vor dem gosub am besten ein:

Code: Alles auswählen

while windowevent() : wend
einbauen.
oder Fenster erst anzeigen, nach dem gosub.

Verfasst: 17.12.2006 22:11
von scholly
a14xerus hat geschrieben:ich verstehe dein Problem nicht.
Es ist doch klar, das es dauert bis alles runtergeladen ist.
was ist denn dadran komisch????
Daß das Listview nicht erst aufgebaut und nach und nach gefüllt wird, sondern das Fenster leer bleibt, während im Debug-Fenster schon output zu sehen ist und dann irgendwann das LV mit allen Einträgen auftaucht.

Normalerweise sollte das Fenster aufgehen, das leere LV gezeichnet werden und Zeile für Zeile VOR dem Debug-Fenster beschrieben werden.

Verfasst: 17.12.2006 22:13
von scholly
ts-soft hat geschrieben:vor dem gosub am besten ein:

Code: Alles auswählen

while windowevent() : wend
einbauen.
Ändert sich nix.

Verfasst: 17.12.2006 22:14
von ts-soft
>> Normalerweise sollte das Fenster aufgehen, das leere LV gezeichnet werden und Zeile für Zeile VOR dem Debug-Fenster beschrieben werden.

Die geschieht nur, wenn auch die Ereignisse abgearbeitet werden, das
werden sie in deinem code aber erst nach allem!

ansonsten siehe mein vorheriges posting

Verfasst: 17.12.2006 22:14
von a14xerus
ich glaueb ein setgadgettext erzeugt ein windowevent, welches bei dir aber im gosub nicht abgefragt wird, aber ohen die events auszuwerten würde ich auch nicht windowevent() aufrufen, das gehört NUR in die Event schleife, das laden kann ja in einen Thread

Verfasst: 17.12.2006 22:19
von ts-soft
@a14xerus
jemanden, der offentsichtlich die Bedeutung der Ereignisbeabeitung noch nicht verstanden hat, kann man nicht zu threads raten.