|
꽁수랍니다.
전 리포트폼(QuickReport)을 띄울때 너무 시간이 걸려서
이렇게 했거든요..
결과보기를 위해 폼을 띄울 때
DlgWait = new TForm(Application);
DlgWait->Height = 55;
DlgWait->Width = 300;
DlgWait->Left = (1024 - DlgWait->Width) / 2;
DlgWait->Top = (568 - DlgWait->Height) / 2;
DlgWait->Parent = FrmMain;
DlgWait->Caption = "Wait";
DlgWait->Visible = true;
DlgWait->BorderStyle = bsNone;
TButton *But1;
But1 = new TButton(Application);
But1->Height = 50;
But1->Width = 295;
But1->Left = 3;
But1->Top = 2;
But1->Parent = DlgWait;
But1->Visible = true;
But1->Font->Size = 20;
But1->Font->Name = "Times New Roman Bold";
But1->Caption = "L o a d i n g . . .";
Wait폼을 동적으로 만들어서 띄웠습니다.
그런 다음에 폼이 로드되고 나면
for (int i = 0; i < Screen->FormCount; i++ )
if ( String (Screen->Forms[i]->Caption) == "Wait" ) {
FrmMain->DlgWait->Close();
break;
}
^^;;; 꽁수지만 잘 돌아간답니다.
참고하세요~
linuxzzang 님이 쓰신 글 :
: Form1,Form2가 있습니다...
:
: Form1에서 버튼을 클릭시 데이터베이스의 자료를 가지고 와서 그리드에 출력하게 됩니다.
: 여기서 일종의 진행중이라는 표시를 나타내어주는 폼을 띄웠다가 자동으로 폼을 닫을려고 하는데
: 좀처럼 되지않네요...
:
: 원래 구현하고 싶었던것은 데이터베이스에 쿼리시 일종의 진행바같은것을 보여주고 싶었는데..
: 쿼리가 끝나는 시점을 계산해 낼수없어서 이방법을 쓰기로 했습니다.
:
: 디비에 쿼리를 날리는것은 Thread로 구현하였습니다.
:
: 저의 소스입니다.
:
: ////////Form1의 소스
: void __fastcall TForm1::ToolButton11Click(TObject *Sender)
: {
: //처리중 폼을 뛰운다...
: Form2->ShowModal();
: }
:
:
: 처리중임을 나타내는 Form2소스
:
: QueryThread *QThread;
: void __fastcall TForm2::FormActivate(TObject *Sender)
: {
: // DB Query
: QThread = new QueryThread(false);
: Form2->Close();
: }
:
:
: 이런식으로 해서 버튼을 클릭하니 새폼이 뜨긴 뜨는데... 폼이 닫히질 않는군요...
:
: 제가 생각한 방법말고 쿼리를 실행하면 일종의 진행상황을 표시할수 있는 방법이나 아이디어 계신분도 알려주시면 고맙겠습니다^^
:
: 여러 고수님들 해결 방법좀 제시 부탁드릴께요~~
|