TIdFTP Fortschittanzeige beim hochladen



  • Hallo,

    weiß jemand wie man bei TIdFTP eine Fortschrittanzeige beim Hochladen einer
    Datei erzeugen kann, die möglichst Bytegenau ist?

    Ich hab Routinen für
    FTP->OnWork und FTP->OnWorkBegin implementiert jedoch werden diese für meinen
    Geschmack nicht oft genug aufgerufen. Ich würde das gerne öfter aufrufen lassen.



  • hat keiner eine Idee? Oder gibt es eine alternative Komponente? Darf auch was
    kosten...



  • Bist du sicher, dass das Event nicht oft genug aufgerufen wird, oder "hängt" vielleicht nur die Anzeige? Hast du ein TIdAntiFreeze auf der Form?



  • TIdAntiFreeze hab ich nicht auf der Form. Ich lass auch die TIdFTP Komponente
    dynamisch erzeugen. TIdAntiFreeze kenn ich gar nicht, dann werd ich da mal nach
    Infos suchen danke!

    EDIT: also OnWork wird wirklich nicht sehr oft aufgerufen. Ich hab mir mal die
    AWorkCount Werte ausgeben lassen. Das ist beim ersten mal 2000 und dann ca. 15000
    ich nehme an das sind die übertragenen Bytes. Ich würde das gerne möglichst oft
    aufrufen lassen. Ich muss 100 - 200 Dateien hochladen die jeweils ca. 30kB gross
    sind. Ich will gerne zwei Statusbalken haben einmal die aktuelle Datei und einmal
    den kompletten Fortschritt. Der Balken für die einzelne Datei hängt praktisch immer
    bei 100%



  • Ich hab ne long als bytecounter genommen
    Prograss Bar->min = 0;
    Prograss Bar->Max = Filesize(byte)

    und hab in der senderoutine die gesendeten bytes hochzählen lassen und die progress bar entsprechend gesetzt. Application->ProcessMessages() verhinderte bei mir das "einfrieren"

    Edit: Den komplette Fortschritt würde ich mit FindFirst,FindNext und nem File Handle alle bytes zusammen addieren und wie oben beschrieben verfahren


Anmelden zum Antworten