|
안녕하세요,
제가 솔직히 회사 선임분이 작성한 프로젝트로 작업을 하고 있는데요
C++ 빌더에 대해서 지식이 별로 없어서 계속 질문을 드리네요,
edit 창에 키 포커스를 잃을때 skjoon님이 알려주신 방법대로
데모를 해보았을때는 잘 되었습니다.
하지만 회사 프로젝트에서 해보니 잘안되서요,,
그이유가,,,제가 만든 데모 프로그램은 하나의 메인 폼만 가지고 있어서
된것 같은데요,, 회사 프로젝트는 여러 폼을 가지고 있어서요,,
제가 구현하고 싶은곳이 메인 폼이 아닌 A 폼에 edit창이 있는데요
우선 skjoon님께서 알려주신 밥법대로 하니
if(String(ActiveControl->ClassName()) == "TEdit") {
// 현재 포커스가 있는 컨트롤이 "TEdit"인지 확인합니다.
ShowMessage("AppDeactivate - TEdit");
}
위 부분에서 AtiveConrol 값이 NULL 이 나와서요,, 에러가 나네요
참고로 제가 구현한 방식은
A.h 헤더파일에
void __fastcall AppDeactivate(TObject *Sender);
A.cpp 에
void __fastcall TForm1::AppDeactivate(TObject *Sender)
{
// 어플리케이션이 비활성화되는 순간임
if(String(ActiveControl->ClassName()) == "TEdit") {
// 현재 포커스가 있는 컨트롤이 "TEdit"인지 확인합니다.
ShowMessage("AppDeactivate - TEdit");
}
}
그리고 A 폼 디자인으로 가서 OnCreate 이벤트 헨들러에
Application->OnDeactivate = AppDeactivate;
위와 같이 구현했습니다..
여러가지 폼을 가지고 있는 곳에서는
edit창의 키 포커스를 잃을때 어떻게 처리해야 될까요/
다시한번 조언 부탁드리겠습니다(_ _)
|