![]() |
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Danke =)
|
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Hallo,
ich würde die 3 Events noch einmal komplett zuweisen. also Löschen des Codes (verschieben ;)) und nochmal erzeugen. Nach dem Blog sind ja jetzt einige Integer zu Int64 mutiert. Was passiert eigentlich, wenn du breakpoints auf die 3 Events setzt, sind die rot oder grün (deaktiviert). Heiko |
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Hm es funktioniert immer noch nicht, auch nachdem Indy auf dem neusten Stand ist. Habe im Code nachgeguckt und es ist auskommentiert. OnWork,OnWorkBegin und OnStatus werden aber nicht aufgerufen :wall:
Der Upload mit idftp funktioniert und die Breakpoints sind rot hilft aber auch nix er kommt ja nie bis zum breakpoint :firejump: |
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Was passiert denn wenn Du in der Write Methode bei onWork die Kommentierung wieder entfernst?
Geht es dann?
Delphi-Quellcode:
procedure TIdIOHandler.Write(AStream: TIdStream; ASize: Int64 = 0;
AWriteByteCount: Boolean = FALSE); var LBuffer: TIdBytes; LBufSize: Integer; // LBufferingStarted: Boolean; begin if ASize < 0 then begin //"-1" All form current position LBufSize := AStream.Position; ASize := AStream.Size; //todo1 is this step required? AStream.Position := LBufSize; ASize := ASize - LBufSize; end else if ASize = 0 then begin //"0" ALL ASize := AStream.Size; AStream.Position := 0; end; //else ">0" ACount bytes EIdIOHandlerRequiresLargeStream.IfTrue((ASize > High(Integer)) and (not LargeStream)); // RLebeau 3/19/2006: DO NOT ENABLE WRITE BUFFERING IN THIS METHOD! // // When sending large streams, especially with LargeStream enabled, // this can easily cause "Out of Memory" errors. It is the caller's // responsibility to enable/disable write buffering as needed before // calling one of the Write() methods. // // Also, forcing write buffering in this method is having major // impacts on TIdFTP, TIdFTPServer, and TIdHTTPServer. { LBufferingStarted := not WriteBufferingActive; LBufferingStarted := False; if LBufferingStarted then begin WriteBufferOpen; end; } //try if AWriteByteCount then begin if LargeStream then begin Write(ASize); end else begin Write(Integer(ASize)); end; end; BeginWork(wmWrite, ASize); try while ASize > 0 do begin SetLength(LBuffer, FSendBufferSize); //BGO: bad for speed LBufSize := Min(ASize, FSendBufferSize); // Do not use ReadBuffer. Some source streams are real time and will not // return as much data as we request. Kind of like recv() // NOTE: We use .Size - size must be supported even if real time LBufSize := TIdStreamHelper.ReadBytes(AStream, LBuffer, LBufSize); if LBufSize = 0 then begin raise EIdNoDataToRead.Create(RSIdNoDataToRead); end; SetLength(LBuffer, LBufSize); Write(LBuffer); // RLebeau: DoWork() is called in TIdIOHandlerStack.WriteDirect() <--------------- DoWork(wmWrite, LBufSize); <--- vielleicht wenn es nicht laufen sollte, hier doWork wieder aktivieren. Dec(ASize, LBufSize); end; finally EndWork(wmWrite); LBuffer := nil; end; { if LBufferingStarted then begin WriteBufferClose; end; except if LBufferingStarted then begin WriteBufferCancel; end; raise; end; } end; |
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
hm es funktioniert immer noch nicht Onwork OnStatus Onworkbegin werden nicht aufgerufen
|
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Delphi-Quellcode:
was passiert denn dann?
var
LBuffer: TIdBytes; LBufSize: Integer; // LBufferingStarted: Boolean; begin <--- wenn Du hier einen Breakpoint setzt und durch den Code stepst Grüße Klaus |
Re: Indy 10 - Progressbar arbeitet nicht mehr mit OnWork
Hi,
sitze hier auhc grade an dem Problem - wurde das in der Zwischenzeit in IdFTP behoben ? Ist immerhin 2 Jahre her ;)... Update: Habs grad ausprobiert mit einer Progressbar und OnWorkBegin, OnWork und dem OnAfterPut Event zum Updaten der Verzeichnissicht nach dem Upload -> funzt einwandfrei bei mir ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz