Seite 2 von 4
Verfasst: 17.12.2006 22:20
von Kaeru Gaman
yo. ein verändern eines gadgets erzeugt ein event, das abgearbeitet werden muss.
das fenster kann erst in der ereignisschleife aktualisiert werden.
Verfasst: 17.12.2006 22:21
von a14xerus
ts-soft hat geschrieben:@a14xerus
jemanden, der offentsichtlich die Bedeutung der Ereignisbeabeitung noch nicht verstanden hat, kann man nicht zu threads raten.
Stimmt, da habe ich garnicht dran gedacht.
Ich dachte nur, das es aber auch schlecht wäre, wenn man sich aneignet, windowevents "wegzuschmeissen" um das fenster richtig upzudaten
Verfasst: 17.12.2006 22:23
von Kaeru Gaman
> Ich dachte nur, das es aber auch schlecht wäre, wenn man sich aneignet, windowevents "wegzuschmeissen" um das fenster richtig upzudaten
stattgegeben.
@ts
warum rätst du eigentlich immernoch zu dieser kontraduktiven event-wegwerf-schleife?
Verfasst: 17.12.2006 22:23
von ts-soft
>> windowevents "wegzuschmeissen"
In dieser Phase ist das egal, es gibt ja noch keine Benutzeraktionen, da
Fenster nicht fertig.
Verfasst: 17.12.2006 22:26
von Kaeru Gaman
joah....
wobei ich mich grad frag...
das gosub steht direkt vor der ereignisschleife...
was also könnte anderes dort lang dauern als der netzzugriff?
Verfasst: 17.12.2006 22:30
von scholly
ts-soft hat geschrieben:jemanden, der offentsichtlich die Bedeutung der Ereignisbeabeitung noch nicht verstanden hat, kann man nicht zu threads raten.
Wüdest Du dann bitte so freundlich sein und mit einem Code helfen, der das tut, was ich will, also nach jedem Downloadversuch eine Zeile ins LV schreiben?
Oder genauer erklären, WARUM es nicht so tut, wie ich vermute, das es sollte.
Das würde mehr helfen, als wenn ich jetzt stundenlang einsam vor mich hingrübel, wo mein Verständnisproblem liegt.
Verfasst: 17.12.2006 22:35
von ts-soft
>> also nach jedem Downloadversuch eine Zeile ins LV schreiben
ins LV schreiben bedeutet u.a. Neuzeichnen, #wm_paint. Die geschieht nur
innerhalb einer Event-Loop-Schleife, bzw. durch WindowEvent()
Hinter jedem Download ein: While WindowEvent() : Wend sollte helfen.
Oder den gosub in der Ereignisschleife zeitgesteuert aufrufen, also mit:
WaitWindowEvent(200)
If noch download
gosub download
EndIf
Verfasst: 17.12.2006 22:36
von Kaeru Gaman
mein lieber Scholly...
ich seh hier nur einen einzigen downloadversuch in dem code...
aber wenn es mehrere sind, dann ist es doch klar:
nach jedem downloadversuch muss ein event abgearbeitet werden,
also, muss ein WindowEvent()-Befehl stehen.
wenn du deine downloadversuche innerhalb der eventschleife startest,
dann werden sie auch sofort angezeigt.
(solange du genau EIN gadget-change-event pro schleifendurchlauf erzeugst)
Verfasst: 17.12.2006 22:39
von ts-soft
>> also, muss ein WindowEvent()-Befehl stehen.
falsch, es werden viele Ereignisse erzeugt.
um die alle abzuarbeiten.
Verfasst: 17.12.2006 22:46
von Kaeru Gaman
ich raffs nich...
da steht ein AddGadgetItem....
wo werden denn die ganzen events erzeugt?
ich mein, man muss natürlich "gleichzeitig" die events abarbeiten...
ich seh hier keine schleife irgendwo, wo eine eingefügte eventbearbeitung was bringen würde.
also, egal, ob eins oder viele... wenn ich keine schleife hab, die ich durch ne eventbearbeitung ergänzen kann,
dann ist es schnurz, ob ich direkt vor die hauptschleife noch ein While WindowEvent() : Wend schreibe,
weil in der hauptschleife auch events verarbeitet werden...
wo sollte denn hier sinnigerweise ne bearbeitung hin?