|
항상 도움에 감사드립니다.
다음코드에서 왜 Error가 떠는지 이유를 잘 모르겠습니다.
Application이 하나 돌아가고 있습니다. 그리고 Form1이 Activate(?)될 경우에 항상 특정 코드를
실행시킬려고 합니다. 그래서 메인폼에서 특정 메뉴를 눌러 Form1이 아닌 다른 폼(Form2,3 ... )에 있는
코드를 실행시키고(물론 해당 폼이 화면에 나타나구요) 난 후 그 폼을 닫아버리면(예 Form2->Close(); ) 다시 Form1이 활성화 되어서 특정코드를 실핼시킬려고 하는데 제대로 동작이 되지 않습니다.
(즉 처음으로 다른 폼으로 갔다가 오면 Form1::FormActivate가 작동이 되지 않구요. 그 다음에 다시 다른 폼으로 갔다가 오면 Form1::FormActivate가 작동됩니다. 그런데 이 때 다시 다른 폼을 부르면 Error가 뜹니다.(EInvalid Access Violation (?) onShow.....(?)어쩌구 저쩌구 )
제가 Form->Show, Form->Close, Form->Activate 를 잘못 사용하는 듯 한데.....
고수님들의 고견을 부탁드립니다. 감사합니다.
-------------- Code -----------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
background();
}
void TForm1 :: background(void)
{
flag_ref_main=EIN, flag_ref_ints=EIN, flag_ref_a1=EIN, flag_ref_a2=EIN;
COUNT=0;
ESCAPE=0;
for (;;)
{
if(ESCAPE==1) break;
Application->ProcessMessages();
pos_stop();
}
return;
}
void __fastcall TForm1::Manual2Click(TObject *Sender)
{
ESCAPE=1; //stop background
Form2->Manual();
}
|