안녕하세요...
지금까지 몇 번 질문을 올렸었는데... 제대로된 답변이 없네요...
이번엔 예전에 찾다가 못찾은 질문을 하나 하려 합니다...
예전 기억을 되살리긴 싫지만 암튼...
질문은 다름아닌 SetActiveWindow에 대한 질문입니다.
델파이1에서
SetActiveWindow(Self.Handle);
하게되면 내폼이 뒤에 가려져있어도 화면 맨 위로 올라와서 활성화 됩니다.
그런데, 32Bit(델파이2,3,4:모두 테스트해봄)에서는 올라오지 않습니다...
그져 버튼에 포커스가 가는 정도...
제가 원하는 기능은 다음과 같습니다.
그런데, 32Bit(델파이2,3,4:모두 테스트해봄)에서는 올라오지 않습니다...
그져 버튼에 포커스가 가는 정도...
제가 원하는 기능은 다음과 같습니다.
타이머 이벤트에서 이벤트가 걸리면 자신의 폼이 화면 맨위로 올라와 키보드로 버튼을
누를 수 있게 폼이 활성화되는 것입니다.
제가 테스트하는 예는 다음과 같습니다.
먼저 화면에 버튼과 타이머 컴포넌트를 올립니다.
타이머에 Enabled를 False로 주고, Interval을 2000으로 설정합니다.
그런다음 아래와 같이 코딩을 합니다..
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SetActiveWindow(Self.Handle); //이부분이 중요하겠죠?
Timer1.Enabled := False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
end;
실행시킨 뒤 버튼을 누른 후 2초후에 화면이 활성화되는 것이죠...
물론 버튼을 누른후 2초내에 다른 폼을 활성화 시켜놔야 합니다...
그래야 테스트가 될테니까요 ^^;
여기서 제가 말하는 활성화라 함은 폼의 캡션(타이틀)바가 파란색으로
나타나며 폼에있는 버튼을 키보드로 클릭할 수 있어야합니다.
예전에 수많은 델파이전문가(?)들이 수많은 종류의 API를 동원해서
테스트했지만 헛수고였습니다...
암튼, 염치없는 부탁이지만... 말로만 답변하시지 마시고,
테스트를 꼭 해보시고 답변을 해 주셨으면 좋겠습니다.
굳이 테스트 할 시간이 없으면 제가 하겠으니 많은 답변 부탁드립니다...
진정한 델파이 실력자를 만나고 픈... OHJANG
|