답변 감사드립니다. 도통 원인을 몰랐는데 많은 도움이 되었습니다. ㅠㅠ
에어로를 지우면 프로그래스바 모양이 이상하게 변해서 그렇게는 하면 안 될거 같아서
어찌어찌 스레드로 하니 원하는대로 되긴하네요.
다시 한번 감사 드립니다.
박지훈.임프 님이 쓰신 글 :
: 아마도 윈도우7 혹은 윈도우 비스타 환경이신 것 같네요.
: 팁 게시판에 정리해서 올렸으니 참고하세요.
: http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=284
:
: 참고로, 보여주신 코드에서 중간중간 두번에 걸쳐 Update를 호출하셨는데요. 앞에 객체 이름이 없으니 폼의 Update를 호출하신 건데, 여기서는 아무런 역할도 하지 않습니다. ProgressBar와 Label의 업데이트는 그 뒤의 Application.ProcessMessages에서 처리가 되죠.
:
:
: 별중검 님이 쓰신 글 :
: : procedure TForm1.Button1Click(Sender: TObject);
: : var
: : i: Integer;
: : begin
: : ProgressBar1.Step := 20;
: :
: : for i := 1 to 5 do
: : begin
: : sleep(500);
: :
: : ProgressBar1.StepIt;
: : Update;
: :
: : Label1.Caption := IntToStr(ProgressBar1.Position) + '%';
: : Update;
: :
: : Application.ProcessMessages;
: : end;
: : end;
: :
: : 위와 같이 작성하고 실행해 보면 Label에 20%가 찍힐 때 프로그래스바는 0이고, Label이 40%되면 그 때서야 프로그래스바가 20이 됩니다.
: :
: : 프로그래스바가 1 스텝만큼 계속 느린데, 이유가 뭘까요? ㅠㅠ
|