|
안녕하세요..
항상 도움만 받는 이 입니다..
이상한 에러가 나서 혹시 아시는분 있나해서 글을 올립니다.
for(int i = 0 ; i < 256 ; i++)
{
ComThread[i] = new TComThread(this);
ComThread[i]->Port = StrToInt(Configure->ComConfig->Cells[2][i+1]);
ComThread[i]->Parity = pr[StrToInt(Configure->ComConfig->Cells[5][i+1])];
ComThread[i]->StopBits = sb[StrToInt(Configure->ComConfig->Cells[6][i+1])];
ComThread[i]->ComClose();
ComThread[i]->Baud = 2400;
ComThread[i]->PacketSize = 80;
ComThread[i]->DataBits = 8;
ComThread[i]->Timeout = 100;
ComThread[i]->Name = "C"+IntToStr(i);
ComThread[i]->OnPacketReceived = ComThreadPacketReceived;
ComThread[i]->ComInit();
}
}
for(int i = 0 ; i < 256 ; i++)
{
Timer[i] = new TTimer(this);
Timer[i]->Enabled = false;
Timer[i]->Interval = 1500;
Timer[i]->OnTimer = TimerTimer;
Timer[i]->Name = "T"+IntToStr(i);
Timer[i]->Enabled = true;
}
이렇게 제가 통신 컴포넌트를 동적으로 살려서 프로그램을 하고 있는데..
처음에는 통신도 잘되고 모든것이 무난하게 잘되었읍니다..
그런데 폼을 하나 추가하고 버튼을 추가하는 순간부터 갑자기 ComThread[0]이 살지않는 거에요..
그 버튼을 삭제하면 되구..
그래서 혹시나 하구 ComThread[1]부터 256번까지 살리면 1번이 안되구..
꼭 처음 것이 안되더라구요..
그래서 몇일 동안 고생하다가 통신 스레드 초기화 하는 부분 다음에 다시
ComThread[0]->ComClose();
ComThread[0]->ComInit();
와 같이 다시 초기화를 하니 되는 듯하군요..
원인을 잘 모르겠읍니다..
혹시 원인을 아시는분 꼭 알켜주세요..
답답합니다..
그럼 좋은 하루되시구요..
끝까지 읽어주셔서 감사합니다..
|