最初の2番目の質問:Visible := False
すべてのShowXXXメソッドのポイントはフォームを表示することであるため、設定は役に立ちません。Davidが言うように、Showをまったく呼び出さなくてもアクションを実行できます。もちろん、フォームが適切に機能するためにコードに依存しないOnActivate
場合に限ります。OnShow
これが良い考えかどうかについては、私はノーと言います!
- すでに指摘したように、注意しなければならない懸念があります。つまり、現在(または将来のある時点でのメンテナンスのために)、フォームは適切に機能するために表示されることに依存しています。
- もちろん、フォームをちらつきさせてプログラムで閉じることで、この問題を回避できます。明らかに審美的に悪い選択です。
- それを正しくすることの問題は言うまでもありません。次のことを行う必要があるときに、必要なことを実行できるようにフォームをラップするパッチワークコードを大量に作成することになります...
正しいアプローチ
- あなたのフォームは現在、少なくとも2つの異なることを行っています。
- ビジュアルUIコントロール(Aと呼びます)
- および「必須機能」(Bと呼びます)
- Bが検証ルールを実行しているのか、追加の処理を実行しているのかなどは関係ありません。
- Bは、ユーザーの操作を必要としないプロセスです。
- したがって、次のことを行う必要があります。
- BをUI以外の場所(カスタムオブジェクトまたはデータモジュールを備えた単純なユニット)にコピーします。それをB*と呼ぶ
- Bを使用する代わりにB*を呼び出すようにフォームを変更します。
- フォームがまだ正しく動作することをテストします。
- Bを削除
- これで、代わりに新しいフォームでB*を呼び出すことができます。
上記のアプローチは、将来の大きな頭痛の種を救うでしょう。