2011-05-16 4 views
1

내 응용 프로그램에서 일부 TFindDialog 및 TReplace 대화 상자를 사용하고 있습니다.TFindDialog와 TReplaceDialog 모달을 만드시겠습니까?

열기 및 저장 대화 상자처럼 대화 상자를 모달로 표시하려면 어떻게합니까? 찾기 및 바꾸기 대화 상자가 열려있을 때 응용 프로그램의 모든 컨트롤을 선택할 수 없도록하고 싶습니다.

입니다
procedure TYourForm.FindButtonClick(Sender: TObject); 
begin 
    Self.Enabled := False; 
    FindDialog.Execute; 
end; 
... 
procedure TYourForm.FindDialogClose(Sender: TObject); 
begin 
    Self.Enabled := True; 
end; 

는, 첫 번째 방법은 버튼의 클릭 핸들러 :

답변

0

단일 윈도우 응용 프로그램의 간단한 예를 들어 나는 이런 식으로 뭔가를 시도 할 수 있습니다. 두 번째 것은 FindDialog.OnClose 이벤트 핸들러입니다.

더 복잡한 경우에는 TCustomForm.ShowModal의 소스 코드를 살펴볼 것입니다.

+1

나는 그것을 시험해 보지 못한 것을 믿을 수 없다! –

+0

어쩌면 그 폼에 대해서도 마우스 커서를 사용 중으로 설정해야합니다 (Self.Cursor : = crHourglass) –

+0

분명히 그것은 해를 끼치 지 않지만 Windows 응용 프로그램에서는 정상적인 동작으로 보이지 않습니다. 예를 들어, TOpenDialog를 사용하여이를 관찰하지 마십시오. –

관련 문제