hab's zwar nich so mit C, aber etwas könnte man wohl dennoch ändern.
Code:
if(!Jvvcl5utils::DirectoryExists( sDir ) )
{
Jvvcl5utils::ForceDirectories( sDir );
}
ForceDirectories prüft intern selber nochmal, also kann das ganze IF-Zeugs weg.
dieses sollte man vermutlich auch nicht direkt im Thread aufrufen ... kann also weg:
Code:
Application->ProcessMessages();
in TSearchThread::Status könnten och einige IFs entfallen, da hier wiederrum die Komponenten intern oftmals selber prüfen, ob wirklich was zu ändern ist.
Code:
void __fastcall TSearchThread::Status( void )
{
formStatus->progressbarStatus->Position = iStatus;
formStatus->progressbarCopyStatus->Position = iCopyStatus;
formStatus->statusbarStatus->SimpleText = sStatus;
formStatus->labelStatusMax->Caption = AnsiString( slFileNames->Count );
formStatus->labelCopyStatusMax->Caption = AnsiString( ulFileSize );
Application->ProcessMessages();
}
// statt Application->ProcessMessages(); eventuell
formStatus->update;
//oder ???
formStatus->refresh;
//oder auch mehreres davon
ich weiß ja nicht wie C das mit den Klammern so handhabt, aber eventuell hilft es ja auch selber ein Paar vorzuschreiben
Code:
// Fortschritt anzeigen:
if ( ( ( liBytesReadTotal * 100 / ulFileSize ) > iCopyStatus )
|| ( iBytesLastRead != iBytesLastWrite )
|| ( liBytesReadTotal == ulFileSize ) )
{
iCopyStatus = liBytesReadTotal * 100 / ulFileSize;
Synchronize(Status);
}
oder nur so?
Code:
// Fortschritt anzeigen:
if ( ( liBytesReadTotal * 100 / ulFileSize ) > iCopyStatus )
{
iCopyStatus = liBytesReadTotal * 100 / ulFileSize;
Synchronize(Status);
}