데이터 교환이나 대량의 FTP 전송과 같은 프로그램을 작성하여 수행할 때 진행률을 ProcessBar로 표시하고 있습니다. 그런데, 시간이 오래 걸리다보니(보통 1시간정도) 실행 화면에서 ProcessBar에 진행률을 나타나고 진행되고 있는 파일명은 Label에 나타낼려고 하는데 프로그램의 수행중에는 나타나지 않네요.
보통 V3와 같은 백신 프로그램의 검사하기 기능을 보면 파일명과 진행률, 그리고 화면도 계속 살아있는데 이건 어떻게 구현한 건가요??
혹시, 아시는분 있으시면 알려주시기 바랍니다.
그럼, 즐거운 하루되세요.
Label이나 ProgressBar에 프로퍼티를 설정하신후,
Repaint를 호출해주시면 됩니다..
Repaint는 WinControl의경우 Invalidate한후 바로 Update를 호출하기때문에,,메시지 루프가 돌지 않아도 바로 처리됩니다.WinControl이 아닌경우에는 부모 영역에 바로 그리게 됩니다..마찬가지로 메시지 루프가 돌지않아도 바로 그려지죠,
아니면,,작업처리를 Thread로 돌리시고,,UI 갱신작업하실때에, Synchronize로 처리해주시면됩니다.
델파이 VCL은 thread safe가 아니기 때문에, 동시에 한 Thread 문맥에서만 UI갱신이 이루어져야합니다..