|
TOpenDialog로 화일 불러올때..화일 사이즈가 큰 화일은 시간이 좀 오래 걸립니다.
그런데, 유저는 화일이 오래 걸리는지 잘 모릅니다.
이런 문제 문제점을 보안하기 위해..
화일의 불러올때 Progressbar와 StatusBar로 그 상태를 출력합니다.
int LoadCallFile(long FileSize);
long OpenFileProgress,realSize = 0,LoadSize ;
LoadSize = FileSize;
while(LoadSize != 0) {
FormMain->StatusBar1->Panels->Items[0]->Text = " ";
if(LoadSize < 0x10000) { //화일이0x10000 보다 적을경우
.......
LoadSize = 0;
OpenFileProgress = 100;
}
else {
..........
LoadSize -= 0x10000;
realSize += 0x10000;
OpenFileProgress = ( realSize*100 / FileSize); //퍼센트로 계산해서
}
FormMain->ProgressBar1->Position = OpenFileProgress;
FormMain->StatusBar1->Panels->Items[0]->Text = IntToStr(OpenFileProgress);
}
return true;
}
위에서 화일크기과 OpenFileProgress(화일크기를 퍼센트로계산) 값을 정확히 읽어오는데..
StatusBar1->Panels->Items[0]->Text에 크기가 써지지 않습니다.
디버깅을 하면 정확히 크기만큼 읽어오는데.. 값이 적어지지 않는군여..
이 함수가 수행이 끝나면 100이라는 값만 나옵니다.
왜 그럴까여?
OnDrawPanel 이벤트를 사용하면 중간 과정은 나타나비 않고 마지만 값만 나타나는군여
화일을 다 읽어오면 100 라는 값만 출력하고 그 전에는 값을 출력하지 않습니다.
|