|
__fastcall DownLoadThread::DownLoadThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void DownLoadThread::SetName()
{
THREADNAME_INFO info;
info.dwType = 0x1000;
info.szName = " RF-Tag";
info.dwThreadID = -1;
info.dwFlags = 0;
__try
{
RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD),(DWORD*)&info );
}
__except (EXCEPTION_CONTINUE_EXECUTION)
{
}
}
//---------------------------------------------------------------------------
void __fastcall DownLoadThread::Execute()
{
SetName();
//---- Place thread code here ----
// FormMain->Enabled = false;
FormMain->Visible = false;
Application->CreateForm(__classid(TDownLoad), &DownLoad);
DownLoad->Show();
DownLoadExit = false;
DownLoadFlag = ERR_NONE;
SerBufClr();
AppDownLoad();
}
쓰레드를 생성해서 처리하는 간단한 프로그램을 만들고있습니다.
메인폼이 있고 쓰레드가 실행될 때 다시 서브폼을 만들어 쓰는데요,
FormMain->Enabled = false;
// FormMain->Visible = false;
빌더가 실행중에 Run을하면 메인폼이 disable되고 새로운 서브폼이 보이는데...
(원하는대로 실행이 됩니다.)
빌더를 닫고 exe 파일을 실행하면
새로운 서브폼도 안보이고, 메인폼도 사라지네요...
// FormMain->Enabled = false;
FormMain->Visible = false;
그래서 위와같이 아예 메인폼을 보이지않게하면 이 때는 잘 동작합니다.
(원하는바는 아니지만, 동작에 이상이 없어 그냥 사용하려다가... ^^;;)
어느부분이 문제인지... 조언부탁드립니다.
늘 좋은 시간되세요~
|