Language/Delphi(VCL,Pascal)
[Delphi] Form Style이 fsStayOnTop일 경우 메세지 박스가 뒤로 숨는 문제
천일몽
2011. 7. 27. 13:43
Showmessage 박스 Owner가 Application으로 되어져 있는 현상 때문에 Form이 StayOnTop일 경우 아래에 숨어버리는 현상 발생
해결 방법은 아래 소스.... Screen.ActiveForm을 이용한 방법
- TForm1 = class(TForm)
- {...생략...}
- procedure OnScreenActiveFormChange(Sender: TObject);
- private
- {...생략...}
- protected
- {...생략...}
- public
- {...생략...}
- end;
- procedure TForm1.FormCreate(Sender: TObject);
begin - Screen.OnActiveControlChange := OnScreenActiveFormChange;
- end;
- procedure TfrmUbBase_S.OnScreenActiveFormChange(Sender: TObject);
- begin
- if Assigned(Screen.ActiveForm) and ( (UpperCase(Screen.ActiveForm.ClassName) = UpperCase('TMessageForm')) ) then
- begin
- SetWindowPos(Screen.ActiveForm.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
- end;
- end;
출처 : 델마당 for Modify By Userpark
이 글은 스프링노트에서 작성되었습니다.