Вот некоторый шаблонный код, который демонстрирует модальное окно поведение в Delphi:
procedure TMain.Button1Click(Sender: TObject);
var
Result: TModalResult;
begin
{ if Dialog is not in "auto-create forms" list - instantiate it }
if not Assigned(Dialog) then
Application.CreateForm(TDialog, Dialog);
{ MODAL forms are blocking input on per application level }
{ so the following call blocks until Dialog form closes }
Result := Dialog.ShowModal();
if IsPositiveResult(Result) then
begin
{ handle if user responds with OK, Yes, etc }
ShowMessage('Accepted');
end
else
begin
{ or handle Close, Cancel, No, ... }
ShowMessage('Cancelled');
end;
end;
Отдельные результаты диалога были достигнуты путем назначения ModalResult
свойство кнопки control в Инспекторе объектов.Для получения дополнительной информации читайте о ShowModal
методе.
Вот соответствующие фрагменты кода DFM, чтобы проиллюстрировать установку свойства ModalResult:
object btnOK: TButton
Caption = 'OK'
ModalResult = 1
end
object btnCancel: TButton
Caption = 'Cancel'
ModalResult = 2
end