Hola,
Y recuerda que lo puedes "complicar" y/o "adornar" de no pocas formas diferentes, por ejemplo, aquí un par de unidades, una correspondiente a un "formulario principal" y otra a un formulario "modal" cuya clase implementa una función "estática" que puede usarse para mostrar el formulario tal como quieres. Es sólo para ver que se pueden seguir cantidad de caminos para llegar al mismo sitio, aunque igual la solución propuesta por el compañero más arriba sea la idónea aquí por su sencillez.
Código Delphi
[-]
unit UMainForm;
interface
uses
Forms, Classes, Controls, StdCtrls;
type
TMainForm = class(TForm)
ShowMyModalFormButton: TButton;
procedure ShowMyModalFormButtonClick(Sender: TObject);
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
uses
Windows, Dialogs, UMyModalForm;
procedure TMainForm.ShowMyModalFormButtonClick(Sender: TObject);
begin
if TMyModalForm.ShowMeModal() = IDOK then
begin
ShowMessage( 'Accepted! ');
end
else
begin
ShowMessage( 'Canceled!' );
end;
end;
end.
Código Delphi
[-]
unit UMyModalForm;
interface
uses
Forms, Controls;
type
TMyModalForm = class(TForm)
public
class function ShowMeModal() : TModalResult;
end;
var
MyModalForm: TMyModalForm;
implementation
{$R *.dfm}
class function TMyModalForm.ShowMeModal() : TModalResult;
begin
with TMyModalForm.Create( nil ) do
try
result := ShowModal();
finally
Free();
end;
end;
end.