私は過去 3 年間、趣味/職業レベルで Delphi を学んでいます。初期のコードを恐怖と恥ずかしさで振り返ることができるところまで進歩したことを嬉しく思います。そのため、初期のアプリのいくつかを調べて、それらを書き直し/リファクタリングしています。
私がやめようとしている悪い習慣の 1 つは、あるフォームのコンポーネントに別のユニットからアクセスすることです。これを強制するために、私は情報隠蔽の方法としてフレームを使用する実験を行ってきました。コンポーネントを含むフォームを作成する代わりに、すべてのフォーム コンポーネントを保持するフレームを作成し、そのフレームをフォームに配置して、フレーム宣言をプライベート宣言に移動します。
type
TMyForm = class(TForm)
private
MyFrame: TMyFrame;
procedure SetTimeDate(const Value: TMyItem);
function ReadTimeDate:TMyItem ;
次に、フォーム初期化セクションにフレームを登録します
initialization
begin
RegisterClasses([TMyFrame])
次に、フレームとそのコンポーネントにアクセスできるフォーム ユニットのパブリック セクションで、必要なプロパティを宣言します。
public
property TimeDate: TOverlayItem read ReadTimeDate write SetTimeDate;
また、フレームを使用して、頻繁に繰り返されるコンポーネント グループを統合しています。
これは私が望む目的 (Myframe とそのコンポーネントを非表示にする) で機能しているようですが、この方法の経験がある人はいますか?
フレームの使用に欠点はありますか? これを行うことで実際に利益を得ていますか?フレーム内でネストされたフレームを使用する際に問題はありますか? Delphi でフレームを使用するための適切なガイドはありますか? Delphi に隠れている GUI 情報に関して、同じ効果を達成するためのより良い/簡単な方法はありますか?
HMcG