The 'Tick' is only triggered in the loop rejecting files for download - this seemed to be where the major 'dead' time was occurring. Win32Zip.c - readd (gets next applicable entry in a search ie rejects non-attr files if attr-only selected) // diag( "readd win32zip.c" ); unsigned cnt = 0; /* Loop to read all dir entries, until next normal entry is found */ do { if ((++cnt & 0x1F) == 0) // added 1.70.12 { // tickle and check cancel user_callback(0,0,0,"",pG); if ( pG->global_abort_sw ) return NULL; // end added 1.70.12 } e = Readdir ( d ); } while ( /*!pG->global_abort_sw && */ e && ( ( !pG->hidden_files && ( e->d_attr & HIDD_SYS_BITS ) ) || ( pG->ArchiveFiles && !( e->d_attr & FILE_ATTRIBUTE_DIRECTORY ) && !( e->d_attr & FILE_ATTRIBUTE_ARCHIVE ) ) ) ); I limited it to every 32 rejected files for the sake of speed. I found that if there is actual files to be found or you were not rejecting heaps of files - a file would be found fairly quickly (event 7). I fear there might still be a bit of a wait when recursing deeply into directories but I could not produce this and anything I tried to add slowed things more than I like. Need plenty to check 'dead' time as I might need to fine tune it (make it Tick every 16 rejects or 64?) . With the version number - I was in a hurry (I knew I was having trouble and did not know how long I could put it off - the Quack thinks maybe 4-6 I might improve). Russell Peters http://www.users.bigpond.com/russellpeters/delphizip.html ----- Original Message ----- From: "Roger Aelbrecht" <Roger.Aelbrecht@xxxxxxxxxx> To: <delphizip@xxxxxxxxxxxxx> Sent: Wednesday, December 11, 2002 4:39 AM Subject: [delphizip] Trial DLL > > Hi Russell, > I made download of the trial DLL > The Zip file tells me that it contains a dll version 1.70.0.12 > in the comments. > However if I extract the ZipDll then I got a version 1.70.1.0 > > But that's not my problem. > I was trying to create an OnTick event but when I start a test > and put a breakpoint in ZipBuilder at the first line of > TZipBuilder::ZCallback > Then the first time this breakpoint is hit is with > cbr->ActionCode = 7; > > Did I miss something or did I completely misunderstood your result. > I concluded from the Results.txt in the Times17012.zip that the > first action received would be an Action 0 the ticker > > > > BTW > <quote> > > Welcome more appropriate names (especially for OnAfterCallback(Sender: > TObject; var DoCancel : boolean)} > > </quote> > > What about On AllowAbort(Sender...) > because basically this is what the event does. > It allows the application to abort > > > > > Roger Aelbrecht > http://web.wanadoo.be/driehoeksw > > > > >