Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

Re: [BCB5] Datei in einem Thread kopieren: ProgressBar Probl

  Alt 1. Sep 2006, 19:47
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);

}
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat