電子書籍の厳選無料作品が豊富!

Delphi初心者です。

例えば
procedure TForm1.Button1Click(Sender: TObject);
var
child:TParent;
begin
child:=Tchild.create 又は child:=Tchild.create(self)
child.free
end;

このselfの意味がよくわかりません。selfがないとコンパイルできないときもあり、逆にあるとコンパイルできない時もあるのですが理由が解りません。どなたかご教示くださいませんか?

A 回答 (2件)

>selfがないとコンパイルできないときもあり、逆にあるとコンパイルできない時もあるのですが理由が解りません。



TChildのコンストラクタがどのようになっているかによって違います。
constructor TChild.Create(AOwner: TComponent);
となっているならselfが必要だし、
constructor TChild.Create;
となっているなら引数は不要です。

コンストラクタの定義によっては、selfではなく他の引数が必要な場合もあります。

ちなみに、提示されたコードのselfは、TForm1のオブジェクトです(TButton1ではない)。
    • good
    • 0
この回答へのお礼

よくわかりました。有難うございました。

お礼日時:2015/04/01 08:03

delphiを触る機会はほとんどなくなりましたが


関数自体のオブジェクト(要は自分自身)を意味します
書かれているソースでいえば self は
TButton1(TForm1.TButton1) になっているはずです
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2015/04/01 08:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!