질문은 다름아닌 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 께서 말씀하시기를...
> 질문은 다름아닌 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를 동원해서
> 테스트했지만 헛수고였습니다...
>
> 암튼, 염치없는 부탁이지만... 말로만 답변하시지 마시고,
> 테스트를 꼭 해보시고 답변을 해 주셨으면 좋겠습니다.
> 굳이 테스트 할 시간이 없으면 제가 하겠으니 많은 답변 부탁드립니다...