DelphiのVCLテクノロジーにより、多くのプログラマーが非常に迅速に開始できます。プログラマーのドアは単純にドラッグされ、Delphiプログラムが非常にうまくいきます。おめでとうございます、あなたはすでにプログラム開発のこの大きな原因を実行することができます。しかし、しばらく勉強した後、そうは思わないかもしれません。 Delphiはオブジェクト指向の言語をサポートしているため、すべてのVCLコンポーネントはオブジェクト指向の言語に基づいて設計されていますもちろん、ここでは、オブジェクト指向の方法を使用する品質については議論しません。また、結局のところ、関連する人々からの抗議を引き起こしたくありません。
Delphiでは、すべてのコントロールが公開キーワードで宣言されます。これは、コンポーネントプログラミングを使用するためのデフォルトの場所でもあります。このようにして、Form2がForm1のコントロールを参照したい場合(Unit1の場合)、Form1がFORM2のものを参照したい場合は、図のように作成できます。しかし、ある日、フォーム2のコントロールの名前を誤って変更した場合、Form1のすべてのコードは書き直されませんか?したがって、これらのコントロールをフォームクラスの特別な要素として使用することを提唱し、外部フォームはフォームクラスによって公開されたプロパティを介してそれらのコントロールにアクセスできます。
例えば:
tform1 = class(tform)
privte
Button1:Tbutton
終わり;
ただし、このデザインは、TbuttonクラスがButton1を自動的に登録できないということです事実、この問題も解決します
初期化
RegisterClasses([tbutton])を追加
もちろん、それは大丈夫です、さまざまなクラスのコントロールがある場合、パラメーターはコントロールの配列であるため、レジスタークラスパラメーターに配置できます。
もちろん、このようなオブジェクト指向の設計方法は、以前の「ドラッグ」方法よりも複雑ですが、高度なカプセル化を達成しました。