임프랍니다.
비교적 간단한데.. implementation 부분에 다음과 같이 쓰시구요,
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := WS_EX_APPWINDOW;
Params.WndParent := GetDesktopWindow;
end;
폼 클래스의 private 혹은 public 섹션에 이 함수의 선언을 추가합니다.
procedure CreateParams(var Params: TCreateParams); override;
끝에 반드시 override; 를 추가해야 제대로 동작합니다.
그럼 이만...
전백수 님이 쓰신 글 :
: 답변에 장말감사드립니다.
: 그런데 저는 델파이를 사용하거든요.
: 예전에 터보씨를 사용해본 적은 있지만 지금은 델파이라서...
:
: 박지훈님이 가르쳐주신 소스를 델파이로 변환할수는 없을까요?
:
: 정말 급한 상황이거든요...
:
: 죄송하지만 다시한번 가르쵸 주시면 정말 고맙겠습니다.
: 그럼...
:
: 박지훈.임프 님이 쓰신 글 :
: : 임프랍니다.
: :
: : 기본적으로 메인 폼이 아닌 서브 폼은 StayOnTop이 되지 않습니다. 서브폼에서 StayOnTop을 설정하면
: : 같은 어플리케이션에 속한 다른 폼들보다는 항상 위에 오지만, 다른 어플리케이션에는 가려져버립니다.
: :
: : 이 문제를 막고 서브폼을 완전한 StayOnTop으로 만들려면, OS를 살짝 속이면 됩니다.
: : 메인폼인척 하는거죠. 이 방법은 팁 게시판의 18번 글로 등록되어 있습니다.
: :
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=18
: : 대신, 이 방법을 쓰면 서브폼이 작업표시줄에 별도의 항목으로 나타나게 됩니다.
: :
: : 그럼 이만...
: :
: :
: : 전백수 님이 쓰신 글 :
: : :
: : : 메인폼인Form1 을 실행시켜 놓은상태에서 익스플로러를 뛰워놓고 F1키를 누르면
: : : form2가 뜨도록 햇습니다.
: : : form2의 퍼로퍼티에서 항상제일앞에 나타나도록 지정을 해주었습니다.
: : : form1은 노말상태이구요.
: : : form2가 떴을때 Form2를 클릭하면 Form1이 익스플로러보다 위로 올라와서
: : : 익스플로러창이 가립니다.
: : : 메세지박스도 마찬가지입니다.
: : :
: : : 메세지박스와 form2가 익스플로러보다 최상위 화면에 나타나도록 할수는 없을까요?
: : :
: : : 답변 부탁드리겠습니다.
: : : 이문제때문에 날밤새우고 있습니다.