|
thread에서 뭔가 포커스에 영향을 주는 처리를 하지 않는이상 Thread 가 있다고 나타나는 현상은 아닐것 같습니다.
일단
: if(Key == 13) CLPosition1_Edit -> SetFocus();
를
if(Key == 13)
{
CLPosition1_Edit -> SetFocus();
Key = 0
}
와 같이 Key 값을 클리어 해줘 보세요. TEdit 자체는 원칙적으로 Enter 를 받아들이지 못합니다.
Key=0 으로 클리어하는 것은 일반적인 것이고요.. 직접적인 원인은 아닐듯 합니다.
이런경우를 해결하기 위해서는 주변 환경을 정리해야만 원인을 찾는데 좀더 빠른게 접근하실 수 있을거라 생각합니다.
새로운 프로젝트를 하나 만드셔서 아래의 로직만 시험해 보세요..
이상이 없으면 기타 다른 부분을 새로만든 프로젝트에 하나하나 추가해보시면서 원인을 찾으시는것이 좋지 않을까 합니다.
성공하시길 바랄께요..
돗대리아 님이 쓰신 글 :
: 이문제로 도움 요청드렸었는대요...
:
: 원인이 대충 먼지 감이 오는대요..
:
: 멀티 쓰레드를 2개 돌리고있는대요..
:
: 쓰레드가 생성되어있는 상황에서 에디트 포커스 이동이 않되는거 같습니다.
:
: 문제 해결 방법이 있을까요??
:
: //---------------------------------------------------------------------------
: // Main Form Activate Function
: //---------------------------------------------------------------------------
: void __fastcall TMain_Form::FormActivate(TObject *Sender)
: {
: if(!Main_Form->Serial_Edit->Focused()) Main_Form->Serial_Edit->SetFocus();
: mFormActive = true;
: }
: //---------------------------------------------------------------------------
: void __fastcall TMain_Form::Serial_EditKeyPress(TObject *Sender, char &Key)
: {
: if(Key == 13) CLPosition1_Edit -> SetFocus();
: }
: //---------------------------------------------------------------------------
: // CL Position1 Edit Enter Inspection
: //---------------------------------------------------------------------------
: void __fastcall TMain_Form::CLPosition1_EditKeyPress(TObject *Sender, char &Key)
: {
: if(Key == 13) CLPosition2_Edit -> SetFocus();
: }
: //---------------------------------------------------------------------------
: // CL Position2 Edit Enter Inspection
: //---------------------------------------------------------------------------
: void __fastcall TMain_Form::CLPosition2_EditKeyPress(TObject *Sender, char &Key)
: {
: if(Key == 13) Serial_Edit -> SetFocus();
: }
|