2つのボタンがあるフォームがあります(1つはmrOK-1はmrCancelです)。ボタンの1つをクリックするとすぐに、フォームが閉じます(OnCloseが呼び出されます)。
カスタム値を返したいのですが。このような:
procedure OpenForm;
var
MyForm : TMyForm;
begin
MyForm := TMyForm.Create (NIL);
try
if MyForm.ShowModal = 1337 then begin
// [...]
end;
finally
MyForm.Free
end;
end;
モーダルフォーム:
procedure TMyForm.Button1Click(Sender: TObject); // mrOK
begin
if Edit1.Text = '' then abort; // Don't close here?!
end;
procedure TExecutePrompt.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if Edit1.Text = '' then abort; // Works but if the user clicks the X it should return mrCancel
end;
私がやりたいことをご理解いただければ幸いです。これは、編集コントロールを備えたプロンプトウィンドウです。コントロールにテキストがない場合、フォームはテキストが入力されるまで(Xがクリックされない限り)留まる必要があります。
ご協力いただきありがとうございます。