|
둘리.CSIEDA 님이 쓰신 글 :
: 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();
: : }
|