タイトルはもしかするとふさわしくないかもしれませんので、参考にしない方がよいかもしれません。
本題ですが、大体のコンポーネントは、コンストラクタ時に引数として、Ownerをもらっているようなのですが、普通にフォーム上にコンポーネントを貼り付けた場合、Ownerはなにになっているのでしょうか?
または、Ownerに限らず、引数がなにになっているのか、なぜその引数になるのかまどを教えていただいても幸いです。
まことに身勝手ながら、ご教授よろしくお願いします。
または、Ownerに限らず、引数がなにになっているのか、なぜその引数になるのかまどを教えていただいても幸いです。
は
または、Ownerに限らず、引数がなにになっているのか、なぜその引数になるのかなどを教えていただいても幸いです。
VCL リファレンス
TComponent.Create を参照しましょう。
ついでに、付属のコンポーネント開発者ガイドを、一読することをおすすめします。
自分で簡単なコンポーネント作って試して理解するのが一番です。
質問に対する解決になるかはわかりませんが,
Ownerは文字どおりオーナーです.ヘルプで「 コンポーネントとオーナー」
「 親プロパティ」を調べると理解が深まるかも知れません.
以下は,引数であるOwnerの動作を調べる簡単なコードです.
新規プロジェクト(必ず新規です)に,LableとButtonを2つ配置します.
このプログラムでは,Button1をクリックすると,OwnerがAFormである
ボタンを作成します.
ただし,親はForm1としているので,AButtonはForm1に表示されます.
Button2をクリックすると,作成したAButtonのOwnerがいなくなりま
すので,AButtonも消えてなくなります.
また,Button1のOwnerをLabelに表示します.
var
AForm: TForm;
AButton: TButton;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=Button1.Owner.Name;
AForm:=TForm.Create(Form1);
AButton:=TButton.Create(AForm);
AButton.Width:=150;
AButton.Caption:='OwnerがAFormのボタン';
AButton.Parent:=Form1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
AForm.Free;
AForm:=nil;
end;
ツイート | ![]() |