Gadgets verschwinden

Anfängerfragen zum Programmieren mit PureBasic.
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Gadgets verschwinden

Beitrag 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?
4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag 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:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag 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
[...]
4
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag 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
4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> nun dauert der download aber länger

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

Grüße ... Kiffi
a²+b²=mc²
Antworten