Seite 1 von 3

Gadgets verschwinden

Verfasst: 20.01.2007 12:58
von mx03
Wenn ich etwas mit URLDownloadToFile runterlade und es mit einer Progressbar anzeige verschwinden immer die anderen Gadget wie text und buttens. :| Wie kann ich es machen das es nicht so hängt?

Verfasst: 20.01.2007 13:01
von Kaeru Gaman
wie machst du es denn im moment?

so ein fehler ist nicht selbstverständlich, und es hängt nicht am URLDownload oder am Progressbar.
es wäre also hilfreich, wenn du etwas näher erklärst, wie du es momentan machst. (code)

Verfasst: 20.01.2007 13:22
von RSBasic
@Kaeru Gaman
Das kenne ich, er hat bestimmt dieser Befehl einfach unter If OpenWindow() hinzugefügt, weil das ja CPU-Auslastung benötigt, leidet das Programm.
Ich würde dieser Befehl unter einem Thread machen, dann werden die Gadgets nicht verschwinden.

@mx03
Wenn doch nicht der Fall ist, meld dich :allright:

Verfasst: 20.01.2007 13:36
von mx03
ne ich habe es unter

Code: Alles auswählen

Repeat
  
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget

    GadgetID = EventGadgetID()
    
    If GadgetID = #Button_2

 For k=0 To 100
     SetGadgetState(#progress_content, k)
     URLDownloadToFile_(0,"http://mx03.de/updates/udlc.dll","udlc.dll",0,0)
Next
[...]

Verfasst: 20.01.2007 14:13
von edel
Mit "CPU-Auslastung" hat das nichts zu tun, es koennen einfach keine
Events mehr abgefragt werden (zum zeichnen der Gadgets noetig), da
die Programmschleife bei "URLDownloadToFile" stehen bleibt , zumindest
solange bis der Befehl abgearbeitet worden ist.

Benutze entweder eine Thread oder ein Callback. Beides findest du
mit Hilfe der Suchfunktion.

Verfasst: 20.01.2007 14:37
von Kaeru Gaman
@RSB

siehste? nicht ins blaue vermuten, sondern informationen geben lassen.


@mx03

edel hat recht. es ist schon oft was drüber geschrieben worden.

außerdem ist die for-next-schleife an der stelle unnütz.
auch ohne URLDownload würde dein Statusbar niemals unterschiedlichen status anzeigen,
weil er in allen 100 zuständen eingestellt wird,
und erst nach 100 gelangt die ereignisschleife wieder an die eventabfrage,
wodurch ein neuzeichnen möglich wird.

Verfasst: 20.01.2007 15:17
von RSBasic
@Kaeru Gaman
Nur zur Information!
Ich meine ja so, wenn man dieser Befehl unter Openwindows setzt, dann ist das Programm so lange ausgelastet, bis die angegebene Datei heruntergeladen ist.
Und außerdem habe ich ja gefragt, ob dies der Fall ist und komm nicht mit "siehste" etc.
Er solle, wie ich vorgeshlagen habe, mit Threads arbeiten.

Verfasst: 20.01.2007 15:22
von mx03
Also ich hab das mal mit Threads gemacht nun dauert der download aber länger als 30min und das nur für ~1MB

Code: Alles auswählen

Procedure downloadpatch()
For k=0 To 100
SetGadgetState(#progress_content, k)
URLDownloadToFile_(0,"http://gamers-control.de/updates/udlc.dll","udlc.dll",0,0)
Next
EndProcedure

Verfasst: 20.01.2007 15:32
von Kaeru Gaman
@RSB

jajaja... is ja gut.. vergiss es...


@mx03

schau doch mal bitte ganz genau hin, was du in deinem code eigentlich tust....

erklär das mal mit worten, vielleicht kommst du dann drauf, wo du da nen fehler machst.

Verfasst: 20.01.2007 15:33
von Kiffi
> nun dauert der download aber länger

... weil Du die udlc.dll 101 mal herunterlädst ;-)

Grüße ... Kiffi