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
이 글은 스프링노트에서 작성되었습니다.
'Language > Delphi(VCL,Pascal)' 카테고리의 다른 글
[Delphi] Form Style - fsStayOnTop 대체 방법 (0) | 2011.07.27 |
---|---|
[Delphi] Form Style이 fsStayOnTop 일 경우 다이얼로그(Dialog) 박스가 뒤로 숨는 문제 (0) | 2011.07.27 |
[Delphi] Form Style이 fsStayOnTop일 경우 메세지 박스가 뒤로 숨는 문제 (0) | 2011.07.27 |
[Delphi] 동적 DLL 호출 방법 (0) | 2010.04.28 |
[Delphi] DLL 호출 규칙(Calling Convention) 테스트용 DLL 및 Source (0) | 2010.04.27 |