Seite 1 von 3
Wert für Progressbargadget
Verfasst: 27.06.2015 22:39
von schleicher
Ich möchte sehr große Dateien über FTP kopieren, aber bei dem Wert für die Progressbar habe ich probleme. Ich habe das so versucht :
Code: Alles auswählen
Global filebytetotal.d ; Dieser enthält z.B. den Wert 12000000000
SetGadgetAttribute(#Progressbar, #PB_ProgressBar_Maximum, filebytetotal) ; setzt aber nicht diesen hohen Wert !
Wie müsste ich das ändern ?
Re: Wert für Progressbargadget
Verfasst: 27.06.2015 22:57
von ts-soft
Der höchste Wert ist: 2147483647 (long).
Du solltest lieber mit Prozent arbeiten!
Re: Wert für Progressbargadget
Verfasst: 27.06.2015 23:20
von schleicher
Gute Idee . Danke
Re: Wert für Progressbargadget
Verfasst: 28.06.2015 17:14
von schleicher
Anzeige fnktioniert nun einwandfrei.
Große Dateien (über 2 Gb) werden nun kopiert, aber das Programmfenster friert ab ca. 30 % ein bis die Übertragung
zu Ende ist. CPU-Auslastung liegt aber nur bei 3-4 %. Übertragen tue ich mit ReceiveFTPFile.
Kann man das verhindern ?
Re: Wert für Progressbargadget
Verfasst: 28.06.2015 18:09
von Kiffi
schleicher hat geschrieben:Übertragen tue ich mit ReceiveFTPFile.
Kann man das verhindern ?
indem Du den letzten Parameter von ReceiveFTPFile() (Asynchronous-Flag) auf #True setzt. Mit FTPProgress() kannst Du den Status Deines Downloads abfragen.
Mehr dazu
hier und
hier.
Grüße ... Peter
Re: Wert für Progressbargadget
Verfasst: 28.06.2015 19:04
von schleicher
Kiffi hat geschrieben:indem Du den letzten Parameter von ReceiveFTPFile() (Asynchronous-Flag) auf #True setzt.
Das habe ich so schon drin, dadurch bekomme ich die Werte für die Progressbar. Aber das verhindert nicht das einfrieren des Programmfensters bei ca. 30 %. Und so kann dann auch die Übertragung nicht abgebrochen werden, weil nichts mehr reagiert.
Noch einen anderen Tip ?
Re: Wert für Progressbargadget
Verfasst: 28.06.2015 19:13
von NicTheQuick
Rufst du denn weiterhin '(Wait)WindowEvent()' auf? Falls nicht, ist es logisch, dass das Programm einfriert, weil keine Events mehr verarbeitet werden können.
Re: Wert für Progressbargadget
Verfasst: 28.06.2015 19:16
von Andesdaf
Ich gehe mal davon aus, dass du FTPProgress() innerhalb einer Schleife mehrfach
abfragst. Dadurch werden die Windowevents nicht mehr verarbeitet, was irgendwann zum
Einfrieren des Fensters führt. Innerhalb deiner Progress-Schleife musst du also ab und zu
die Events abarbeiten, z.B. so:
ist erstmal nicht besonders schön, sollte aber helfen, wenn du während des Übertragungs-
Prozesses auf keine anderen Events reagieren willst.
// Nic war schneller
Re: Wert für Progressbargadget
Verfasst: 04.07.2015 15:05
von schleicher
NicTheQuick hat geschrieben:Rufst du denn weiterhin '(Wait)WindowEvent()' auf?
Habe nun WindowEvent() eingefügt, sodas es immer am Anfang der Schleife aufgerufen wird und jetzt läufts besser danke.
Neues Problem ist aber , das der höchste Wert bei FTPProgess() scheinbar long ist , brauche aber einen höheren Wert. Geht das ?
Re: Wert für Progressbargadget
Verfasst: 04.07.2015 15:44
von Kiffi
schleicher hat geschrieben:Neues Problem ist aber , das der höchste Wert bei FTPProgess() scheinbar long ist , brauche aber einen höheren Wert. Geht das ?
nein. Wie Thomas schon schrieb:
ts-soft hat geschrieben:Der höchste Wert ist: 2147483647 (long).
Du solltest lieber mit Prozent arbeiten!
Grüße ... Peter