考えられる可能性は次の 4 つです。
プラス: 迅速かつ簡単。マイナス: 子フォームの「内部」が不必要に外部に公開され、その結果、呼び出しコードがより脆弱になる可能性があります。
プラス: IDE フォーム デザイナーを介してプロパティを簡単に設定できるようにする場合に便利です。上記の「a」よりも優れたカプセル化。マイナス:おそらく私の最も嫌いなアプローチですが、その理由を正確に説明することはできません. プロパティは強力ですが、内部で発生するすべてのことが少し心配です
プラス: B よりもシンプルですが、同じようにカプセル化が改善されており、(私の考えでは) 少しすっきりした感じがします。
- d: セットアップの場合は、追加のコンストラクター引数を介してアクセスします
多くの場合、フォームを作成するときにフォームを少しカスタマイズできるようにしたいだけです。この場合、コンストラクターにパラメーターを追加するのが最も簡単な方法です。これにより、プロパティの「読み取り可能な」性質について心配する必要がなくなり、フォームの作成時にキャプションが (外の世界に関する限り) 固定されるため、役立つ場合があります。
FormChild := TChildForm.Create(nil, 'test');
プラス:追加のプロパティまたはメソッドの手間を省きます。マイナス:すべての場合に当てはまるわけではありません。