C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71860] Re:Re:폼 로딩시에 게이지로 진행률 보여주려 하는데 안되네요.ㅠ
kimchpekr [kimchpekr] 3388 읽음    2014-10-12 11:40
진심으로 감사합니다.^^

'Starlet"님과 "빌더초보"님 덕분에 깔끔하게 해결했습니다.
특히나 "빌더초보"님 예제 코딩은 정말로 크게 도움이 되었습니다.^^

다시 한 번 감사드립니다.^^

빌더초보 님이 쓰신 글 :
:
: 
: 	class TTest : public TForm {
: 	public:
: 		TTimer *Timer1;
: 		TProgressBar *pb;
: 		int n,nMax;
: 
: 		__fastcall TTest(TComponent* Owner):TForm(Owner,1) {
: 			pb = new TProgressBar(Owner);
: 			pb->Parent=this;
: 			pb->Position=0;
: 
: 
: 			Timer1 = new TTimer(Owner);
: 			Timer1->Enabled=false;
: 			Timer1->Interval=100;
: 			Timer1->OnTimer=ATimer;
: 			this->OnShow=testOnShow;
: 
: 		}
: 
: 		void __fastcall testOnShow(TObject *Sender) {
: 			n=0;
: 			pb->Position=n;
: 			pb->Max=nMax;
: 			Timer1->Enabled=true;
: 		}
: 
: 		void __fastcall ATimer(TObject *Sender) {
: 			if (n < nMax) {
: 				pb->Position=n+1;
: 				//쿼리작업
: 				n++;
: 			}else {
: 				//쿼리가 끝났을 때 작업
: 				Timer1->Enabled=false;
: 				ShowMessage("End");
: 				pb->Visible=false;
: 			}
: 		}
: 	};
: 
: 	TTest *a = new TTest(Application);
: 	a->nMax=20;
: 	a->ShowModal();
: 
: 
: 

:
: 생성자에, 0부터 nMax만큼 쿼리를 수행하며 ProgressBar를 갱신하는 타이머를 생성하고,
: OnShow에 Timer를 시작하는 함수를 대입한 클래스 입니다.
:
: 폼에 버튼하나 올리시고 긁어 붙여서 테스트 해보시면 됩니다.
:
: 저도 예전에 궁금했던건데 'Starlet'님 에게 타이머라는 힌트를 얻어서 한번 구현해 보았습니다.
: 도움이 되었으면 하네요.
:
:
:
:
: 김창환 님이 쓰신 글 :
: : 폼을 열기 전에 쿼리를 많이 돌려서 보여줄 값을 긁어와야 합니다.
: :
: : 이러한 이유로 OnShow() 이벤트에 쿼리를 넣고 돌리고 있는데, 시간이 너무 많이 소요되다 보니 FlatGauge를 올려놓고 진행상황을 표시해주려 했습니다.
: :
: : 그런데 OnShow() 에 있는 쿼리가 모두 끝나기 전에는 폼이 보여지지도 않고, 결과적으로 폼 위에 얹어둔 게이지도 나중에서야 처리가 다 끝나고 폼이 보여지면 그 때 100%로 보여진다는거죠.
: :
: : 혹시 도움이될까 해서
: :   Gauge1->Refresh();
: :   Application->ProcessMessages();
: :
: : 위 코드를 추가 해봤는데도 여전히 OnShow() 내의 처리가 다 끝난 뒤에 보여지고 있습니다.
: :
: : 이러한 문제를 해결하려면 어떻게 접근해야할까요?
: : 이리저리 해봐도 해결책이 보이지 않아 도움을 청합니다.ㅠ

+ -

관련 글 리스트
71840 폼 로딩시에 게이지로 진행률 보여주려 하는데 안되네요.ㅠ 김창환 3216 2014/10/07
71853     Re:폼 로딩시에 게이지로 진행률 보여주려 하는데 안되네요.ㅠ 빌더초보 3382 2014/10/10
71860         Re:Re:폼 로딩시에 게이지로 진행률 보여주려 하는데 안되네요.ㅠ kimchpekr 3388 2014/10/12
71845     Re:폼 로딩시에 게이지로 진행률 보여주려 하는데 안되네요.ㅠ Starlet 3238 2014/10/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.