これは誰かにとって単純なものでなければなりません。どうすればいいのかわからない。
プログラムを終了したら、メインフォームを非表示にして、次のように最終的な「ありがとう」フォームを単独で表示したいと思います。
procedure TMainForm.ExitExecute(Sender: TObject);
begin
MainForm.Visible := false;
ThankYouForm.Show;
MainForm.Close;
end;
しかし、それを行うと、例外が発生します。
E無効な操作:OnShowまたはOnHideでVisibleを変更することはできません
では、Delphiでプログラムを終了するときにメインフォームを非表示にしながら、最終的なフォームを表示するにはどうすればよいですか?
結論:Mghieは、私が試みていたことが正しく、機能するはずだったことを確認しました。これは、フォームを終了および終了する手順のどこかに、この例外を引き起こすバグがあったことを示しています。
それがわかったので、問題を見つけて修正するのにそれほど時間はかかりません。
問題が見つかりました:ThankYouForm内からメインフォームを閉じていたところ、どういうわけかExitExecuteにループバックし、すべてがまとまってしまいました。
しかし、すべてが再び順調です。ThankYouForm.ShowModalが完全に機能する前のMainForm.Hide。
みんなありがとう。