본문 바로가기
Delphi Tip/+Tip

모달폼(다이얼로그 등)이 떠 있을 때 폼 visible 막기

by MonoSoft 2022. 1. 27.
728x90
반응형

모달폼(다이얼로그 등)이 떠 있을 때 폼 visible 막기

 

일반적으로 델파이에서 폼을 ShowModal하게 되면

다른 폼들은 모달 상황이 종료될 때 까지 사용할 수 없습니다.

 

그 이유는, 모든 폼들의 Enabled를 False로 바꾸어 버리기 때문이죠.

그런데, 프로그램을 만들다 보면 ShowModal중에도

제어가 가능한 폼이 필요할 때가 있습니다.(Form1.Enabled:= True)

 

이런게 언제 필요하냐면

모달 폼에서 데이터를 검색해서 입력해야 할 때

또 다른 모달 창을 띄웠다 닫았다 하게 만들면 사용자들이 별루 안 좋아 할 때가 많죠

 

화면 키보드를 프로그램에 내장 시킬 때

등등 여러가지 부분에서 사용이 가능할 겁니다.

 

필요하신 분들이 있다면 도움이 되길 바랍니다.

소스랄 것도 없이 간단합니다. 그럼...

 

type

TForm1 = class(TForm)

...

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject)

private

procedure WMEnable(var Msg: TMessage); message WM_ENABLE;

end;

 

implementation

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled:= False;

EnableWindow(Handle, True);

end;

 

728x90
반응형

댓글